»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
colomon niecza: say " this is a test ".trim 00:53
p6eval niecza v11-20-gb962c2f: OUTPUT«␤Unhandled Exception: Unable to resolve method trim in class Str␤ at /tmp/IfwOzwBMm6 line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2224 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2225 (module-CORE @ 58) ␤ at /home/…
colomon b: say " this is a test ".trim
p6eval b 1b7dd1: OUTPUT«this is a test␤»
colomon perl6: for lines -> $filename { .say } 01:53
p6eval rakudo 9c2880: OUTPUT«===SORRY!===␤Missing block at line 1, near ""␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&lines"␤ at /tmp/TnvfBfAU7W line 1, column 5-11␤»
..niecza v11-20-gb962c2f: OUTPUT«===SORRY!===␤␤Missing block at /tmp/d4bvgvavRN line 1 (EOF):␤------> for lines -> $filename { .say }⏏<EOL>␤Other potential difficulties:␤ $filename is declared but not used at /tmp/d4bvgvavRN line 1:␤------> for l…
colomon perl6: for lines() -> $filename { .say }
p6eval rakudo 9c2880: OUTPUT«Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤» 01:54
..niecza v11-20-gb962c2f: OUTPUT«Potential difficulties:␤ $filename is declared but not used at /tmp/QUr06YxTh5 line 1:␤------> for lines() -> ⏏$filename { .say }␤␤␤Unhandled Exception: Unable to resolve method say in class Any␤ at /tmp/QUr06YxTh5 line 1 (mainline @ 4…
..pugs b927740: OUTPUT«*** No such subroutine: "&lines"␤ at /tmp/zSaYDofYec line 1, column 5-13␤»
colomon perl6: for lines() { .say }
p6eval rakudo 9c2880: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdteil du inmi…
..niecza v11-20-gb962c2f: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdtei…
..pugs b927740: OUTPUT«*** No such subroutine: "&lines"␤ at /tmp/3T49lwu366 line 1, column 5-13␤»
colomon perl6: for lines { .say }
p6eval rakudo 9c2880: OUTPUT«===SORRY!===␤Missing block at line 1, near ""␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&lines"␤ at /tmp/2qnKUmu0I9 line 1, column 5-11␤»
..niecza v11-20-gb962c2f: OUTPUT«===SORRY!===␤␤Missing block at /tmp/mwX49GP4Pq line 1 (EOF):␤------> for lines { .say }⏏<EOL>␤␤Parse failed␤␤»
colomon is currently using Niecza to scan 23,500 MP3 files looking for ones not tagged with artist and title. 02:11
snarkyboojum colomon: coolness :) github? :D 02:12
colomon gist.github.com/1342361 02:13
I'm using "find" to generate the list of files to test. :)
snarkyboojum aww.. taglib libraries eh 02:14
heh yeah - cool stuff
colomon mind you, it seems to be taking a pretty long time.
but then, to be fair, the files are on a different computer. I'm probably swamping my LAN. 02:15
TagLib#, yes.
snarkyboojum real world perl6 usage++ :) 02:16
colomon yup
NIecza's ability to handle CLR libraries is almost like having access to CPAN again. :) 02:17
sorear appears
snarkyboojum yeah v. cool.. was wondering how you'd written a ID3 header parser in Perl 6 :) 02:18
colomon snarkyboojum: I am far too lazy for that. :)
wow, a lot of my classical albums aren't tagged... Respighi, Rachmaninov, Chopin, Grieg, Wendy Carlos, Copland... 02:21
done! 02:25
my poor classical collection has been terribly neglected. hmm... wonder if I can come up with a clever way to tag them and import them into iTunes at the same time.
colomon afk # bedtime 02:33
snarkyboojum my little project for the remainder of the weekend will be to put Rakudo on my new N9 :P 02:38
cognominal_ snarkyboojum: that sounds like a phony project :) 02:44
snarkyboojum cognominal_: ;) 02:45
sorear discovers debug.debug() in Lua 02:48
this is awesome and I'm going to steal it for niecza.
dalek odel: f9e1bb5 | sorear++ | lua/runtime/Runtime/Lexpad.lua:
Fix off-by-one in lexpad extension that caused KnowHOW to overwrite GLOBAL
04:17
odel: d1dbce3 | sorear++ | lua/runtime/Init.lua:
Add debug_get("name") function
dalek odel: b6be7a2 | sorear++ | lua/runtime/Try.lua:
Add commented out option for disabling try system
04:45
odel: 87e76e7 | sorear++ | lua/runtime/Metamodel/Representations/P6opaque.lua:
Fix reversed test that caused $!foo to always come up Null on fetch
sorear nqp: say(say(1)) 05:25
p6eval nqp: OUTPUT«1␤1␤»
dalek odel: f7293ef | sorear++ | lua/runtime/Runtime/Ops/P6list.lua:
Make objects like (1,2,3) have the correct length annotation
05:28
odel: edeaddb | sorear++ | lua/runtime/Runtime/Signatures/SignatureBinder.lua:
Fix error in printing parameter count errors
moritz \o 06:04
sorear o/ moritz 06:05
6model/lua is much further along than I expected it would be 06:06
diakopter sorear: thanks for your help/patches! :) 06:33
you more than doubled the passing tests 06:37
diakopter tables in lua/luajit are implemented with an integer-indexed array as well as a hashtable; At some point, an optimization would be to replace all the method/accessor indexes with fixed integer ones. It would hurt readability/debuggability greatly, so perhaps it could be automated by first ensuring all the fieldnames are unique across types 06:40
moritz is it worth it? did you benchmark it? 06:43
diakopter good questions..
(no)
it's the kind of thing that could be globally implemented across all the .lua sources, so part of the build/compilation process 06:45
sorear lua's grammar is super simple, you could write a program to parse and munge the handwritten lua files 06:46
diakopter right; what I was thinking
sorear the nonhandwritten lua files can just be emitted munged 06:47
diakopter as long as the field/method names are unique across types
it would be some extremely []-heavy code :)
sorear you studied closure compiler I think you're the expert here 06:48
note that [] is not necessarily a cheap operation, since it requires a floating point to integer conversion
diakopter luajit narrows to ints
sorear fistp is historically one of the slowest x86 instructions, dunno if that's still the case
moritz didn't it use to do something really crazy, like pushing a float to the stack, and popping it back into a register as an int or so? 06:54
sorear no, the x87 cannot directly access int registers
the "st" stands for store-to-memor
dalek odel: 82cda6a | sorear++ | lua/runtime/ (3 files):
Switch "Nil" fakery to something a bit more Lua-compatibile
07:00
diakopter waits a bit to see if sorear can magically fix ../../t/nqp/48-closure.t 07:16
sorear diakopter: why that one specifically? it's rather far down the list :P 07:32
diakopter it fails with a different error 07:33
diakopter looks at test 45
sorear oh, oops 07:34
the fail list I gave you was made with try disabled
so anything that uses return would have died
diakopter o_O
I mean, I'll work on making test 45 pass 07:35
diakopter boggles at y.lua from test 45 07:36
diakopter lol. test 45 won't be passing for quite a while 07:45
sorear diakopter: correct try-ness didn't help decrease fails 07:46
diakopter hrm 07:47
sorear heh, it did a suprisingly good job of compiling 45 07:48
diakopter moves on to 37-slurpy.t
sorear heh, apparently 6model/lua is still using Parrot control exception codes 07:52
throwing a 57
diakopter :) 07:55
dalek odel: 565c225 | diakopter++ | lua/runtime/Runtime/Signatures/SignatureBinder.lua:
pass one slurpy test
07:57
odel: efc1cca | diakopter++ | lua/runtime/ (3 files):
Merge branch 'master' of github.com:diakopter/6model
sorear \o/ 07:59
diakopter moves to test 24 for now 08:00
dalek odel: 8a51963 | sorear++ | lua/runtime/Runtime/Exceptions/LeaveStackUnwinderException.lua:
Fix typo in LeaveStackUnwinderException that prevented return from working, fixes closure test
08:01
sorear diakopter: is the icu stuff available for linux? 08:02
sorear -> sleep for now
diakopter sorear: the author said he would try to get it to compile for debian 08:03
sorear closed source?
diakopter nope; MIT
github duncanc/icu4lua
sorear hmm, I might take a crack at that tomorrow
sorear or wait would that be a breach of etiquette 08:04
diakopter I don't think so
the author sounded very open to contributions
I got it to compile on ubuntu by hacking up the Makefile a lot but got a missing symbol error when I tried to run it 08:05
sorear off to sleep for reals now 08:08
dalek odel: 3215eb1 | diakopter++ | lua/runtime/Metamodel/ (3 files):
lots more pass
08:14
odel: 15602da | diakopter++ | lua/runtime/Runtime/Exceptions/LeaveStackUnwinderException.lua:
Merge branch 'master' of github.com:diakopter/6model
diakopter passes 249 tests now sorear++ 08:15
fails only 9 out of 57 test files 08:16
Woodi is 'niecza's ability to handle CLR libraries' on same lvl as 'using Parrot bytecode-compilled libraries in Rakudo' ? 08:24
tadzik it's in better shape I'd say 08:27
colomon it's incredibly easy. 08:29
colomon loliblogged: justrakudoit.wordpress.com/2011/11/...-mp3-tags/ 08:54
Woodi: example of using a CLR library in that blog post. 08:55
tadzik colomon++ # cool 08:57
colomon tadzik: speaking of CPAN -- what's the state of panda / pies on nom? 08:58
colomon would also love to see it working on niecza... 08:59
tadzik colomon: blocking on JSON, which is blocking of regexes 09:00
I'm more and more thinking about a temporary solution for this
like, a META.info-only parser
colomon +1
tadzik added to today's TODO then 09:01
my plans for S11, and a whole bunch of improvements to the module ecosystem are waiting for those. And blocking on $university, as always
at least it's interesting this semester 09:02
colomon interesting++
tadzik A little bit too much seeples for me personally, but I can live with that
diakopter moritz: I replaced all 2000ish instances of .STable with [1] in *.lua and it sped up a small nqp program by 10% 09:19
.STable is called quite often 09:20
tadzik I guess your nqplua is now... *puts on sunglasses* ...unSTable 09:21
diakopter :) 09:22
there are *so* many hash lookups 09:24
esp. on the Ops table
writing that optimizer will be fun
tadzik I have a feeling that everything in lua is a hash lookup 09:25
array indexing, method calls
diakopter integer indexes aren't hash lookups
tadzik oh, I didn't know that 09:26
I thought tables are just cheating hashes
diakopter tables have two storages; hashtable and array
tadzik I see
diakopter resizing array 09:27
running my LocalsOptimizer.lua on NQPSetting.lua also gains 10% 09:32
tadzik nice 09:32
diakopter takes a couple of minutes 09:33
Woodi tadzik: long no-sleep periods probably shutdowns neurons in brain, so it is effectivelly 'sleepy' state, less productive and can be dangerous too... be carefull 09:41
tadzik Woodi: hmm, what are you commenting? 09:42
"tadzik | A little bit too much seeples for me personally" I suppose
seeples := "C++", not "sleepless" :)
Woodi @blocking and univ + your (much) previous messages
tadzik yeah, sorry for confusion :) 09:43
Woodi tadzik: just bit of advice from someone who do not pass IT study :)
tadzik sleepless is another thing, but it doesn't occur too often, unfortunately :)
erm, fortunately
Woodi: aw, shame. Where did you study?
Woodi Torun/Olsztyn, then moved to Food Technology :) 09:44
tadzik :) I'm now 4th semester on PW
Woodi a lot projects on Px i hear :) 09:45
tadzik there are now 45 people, 120 were starting in 2010
yeah, not much time to slack off these days
Woodi tadzik: btw, i got idea some time ago... maybe print some A4 posters with #perl6 + butterfly and stick around univ IT ? to bust Poland % on Perl. would be damn cheap too :) 09:46
tadzik Woodi: I advocate Perl 6 sometimes on the local LUG :) They now want me to run a few-hours-long Perl training 09:47
Woodi idea can be used world-wide too :)
so many MS A3 posters
tadzik: you see, i mean kind a work_at_base :) 09:48
tadzik I know what you mean :)
unfortunately, almost no one cares about anything besides what they teach us on the uni 09:49
Woodi will test idea in Olsztyn first :>
tadzik and those of them who do I meet monthly on LUG meeting anyway :)
Woodi thats not true - few ppls (students :) just waste A LOT of time :)
Woodi even 'say hi' on #perl6 will change his/her life :) 09:50
I assume i allowed to print Camelia... :) 09:51
fsergot hi! ::) 10:55
tadzik hi fsergot 10:58
diakopter NQPClassHOW isn't being set as the .HOW of new classes 10:59
fsergot how do You do tadzik? :)
tadzik not bad, you? 11:00
fsergot too. :)
tadzik ha, I'm buying a brown bess :) 11:03
moritz en.wikipedia.org/wiki/Brown_Bess such a thing? 11:11
tadzik aye 11:12
tadzik woot, Grammar::Tracer is super cool 11:27
jnthn++
I believe that was my reaction on jnthn's talk too, but now I'm solving problems with it
tadzik I have a feeling <a> ** ',' is a bit broken 12:01
tadzik gist.github.com/1342787 12:03
tadzik works for <tok> [ ',' <tok> ]* 12:06
Woodi can somebody look and comment, pls ? lunski.pl/~sylwek/perl/Welcome.pdf 12:13
moritz Woodi: nice. A few nits: it might be better to formlate it as a sentence, "The Perl 6 community welcomes YOU!" 12:15
moritz (Perl 6 isn't usually capitlalized) 12:16
moritz no need for the 'www.' in the URL 12:16
Woodi right
Woodi 'not capitalized' ? 12:17
moritz "PERL" is capitalized 12:18
moritz and "Perl" is correct 12:18
Woodi ah, right again 12:19
Woodi corrected 12:25
tadzik nice one 12:28
Woodi unis board are great invention IMO :) 12:31
snarkyboojum also typo at "entusiastic" 12:58
colomon hmmm... does MAIN work in Niecza yet? 13:38
flussence doesn't seem like it: "&MAIN is declared but not used at /home/ant/test.pl6 line 1:" 13:38
moritz niecza: sub MAIN() { say "OH HAI" } 13:40
p6eval niecza v11-20-gb962c2f: OUTPUT«Potential difficulties:␤ &MAIN is declared but not used at /tmp/mSBpwiVXoN line 1:␤------> sub MAIN⏏() { say "OH HAI" }␤␤» 13:40
colomon bother. it would be quite handy at the moment for me. 13:41
moritz it is handy, yes 13:42
colomon sorear: ping? 14:54
colomon sorear: cancel that ping, figured out how to make a System.String[] on my own. :) 14:57
colomon Well hell. Who'd have thought it was easier to write a Perl 6 script to change the tags on your MP3 files than it would be to get iTunes to recognize them properly? For some reason iTunes "Get Info" is giving me one album name but the standard iTunes song listing is giving me a completely different one. :( 15:36
moritz colomon: I hope you are aware that a MP3 can have two different, totally independent tag sets, one ID3v1 and one ID3v2 17:00
moritz colomon: so it might be possible that ID3v1 tells one thing, and ID3v2 says the other thing 17:00
dalek odel: 2f1109b | diakopter++ | lua/ (3 files):
bind_attr_with_hint bugfix and minor optimization to caught exception if/then (converts if ((exc.TargetBlock ~= Block and 1 or 0) ~= 0) then to if (exc.TargetBlock ~= Block) then in generated code)
18:12
japhb perl6: print ''.Numeric 18:22
p6eval rakudo 9c2880: OUTPUT«0»
..niecza v11-20-gb962c2f: OUTPUT«␤Unhandled Exception: System.FormatException: Invalid format.␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) […
..pugs b927740: OUTPUT«*** No such method in class Str: "&Numeric"␤ at /tmp/cy0DKRTMZx line 1, column 7 - line 2, column 1␤»
japhb perl6: print +'' 18:23
p6eval pugs b927740, rakudo 9c2880: OUTPUT«0» 18:23
..niecza v11-20-gb962c2f: OUTPUT«␤Unhandled Exception: System.FormatException: Invalid format.␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) […
japhb OK, so what is +'' *supposed* to be?
japhb It looks like from S02-literals/string-interpolation.t:48-52 that the author of that test file thought it should be 0, but I don't know whether I should trust that. 18:26
flussence eval +'' 18:27
buubot_backup flussence: No output.
flussence print eval +''
whoops
eval print +''
buubot_backup flussence: 1
flussence hm, I dunno.
colomon moritz: definitely not, it's ID3 version 2.3.0 all the way 18:28
japhb The only two things I can see as likely possibilities are 0 or Failure. I just don't know how strict .Numeric was intended to be. 18:28
flussence .Numeric can't be strict by definition, since all it's supposed to do is return something that does the Numeric role. 18:29
japhb flussence, but it can fail. So that still doesn't rule out either of my possibilities. 18:30
japhb (And Niecza and Rakudo have chosen opposite choices, of course) 18:30
japhb perl6: +' ' 19:11
p6eval pugs b927740, rakudo 9c2880: ( no output )
..niecza v11-20-gb962c2f: OUTPUT«␤Unhandled Exception: System.FormatException: Input string was not in the correct format␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, …
japhb perl6: print +' '
p6eval pugs b927740: OUTPUT«0»
..rakudo 9c2880: OUTPUT«malformed numeric string␤ in method Numeric at src/gen/CORE.setting:3031␤ in sub prefix:<+> at src/gen/CORE.setting:1831␤ in block <anon> at /tmp/picKqGN362:1␤ in <anon> at /tmp/picKqGN362:1␤»
..niecza v11-20-gb962c2f: OUTPUT«␤Unhandled Exception: System.FormatException: Input string was not in the correct format␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, …
japhb TimToady, Rakudo's Str.Numeric() is a little indecisive about how it wants to handle empty strings, strings containing only whitespace, and the presence of whitespace in various places in the string. I'm happy to normalize all of that, but normalize to what? What was your intended behavior? 19:15
.oO( Hmmm, I should have done that via phenny ... )
phenny, ask TimToady Rakudo's Str.Numeric() is a little indecisive about how it wants to handle empty strings, strings containing only whitespace, and the presence of whitespace in various places in the string. I'm happy to normalize all of that, but normalize to what? What was your intended behavior? 19:16
phenny japhb: I'll pass that on when TimToady is around.
moritz japhb: I thikn the official version is that it should all fail(), but our Failure handling isn'T very good yet 19:16
japhb moritz, can you explain that further? I saw a few comments to that effect in various places, but none explained what the actual problem was. 19:17
moritz nom: +'foo' 19:21
p6eval nom 9c2880: ( no output ) 19:21
moritz nom: +'foo'; say 'alive'
p6eval nom 9c2880: OUTPUT«alive␤»
moritz nom: +'1foo'; say 'alive'
p6eval nom 9c2880: OUTPUT«alive␤»
moritz nom: say +'1foo'; say 'alive'
p6eval nom 9c2880: OUTPUT«Failure.new()␤alive␤» 19:22
moritz japhb: for example should a Failure in void context be fatal, but it isn't
nom: say 1 + (+'1foo')
p6eval nom 9c2880: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤ in method Numeric at src/gen/CORE.setting:614␤ in sub infix:<+> at src/gen/CORE.setting:1971␤ in block <anon> at /tmp/VmlQVaf0bm:1␤ in <anon> at /tmp/VmlQVaf0bm:1…
moritz and that is the real problem
diakopter moritz: I seem to have forgotten how to create a new p6eval target (nqplua)
moritz once we do something with an exception, we just get a dispatch failure, and the original error message is lost 19:23
diakopter: I'll write up something short for you
dalek albot: a72d51d | moritz++ | README:
add some instructions on how to add an execution target
19:27
moritz diakopter: there you go
diakopter thanks 19:27
sorear good * #perl6 19:28
diakopter hm; maybe I'll make it use rakudo's parrot 19:31
sorear: here's my status on the method_table error: 19:32
diakopter somehow my new types are being given .HOW = the bootstrapping KnowHOWHOW instead of NQPClassHOW 19:32
so class Foo { } doesn't work 19:33
diakopter I suspect that when the above is fixed, nearly all of the rest of the tests will pass 19:33
lue hello world o/ 19:38
fsergot hi lue :) 19:41
dalek albot: bd7c2ac | (Perl 6 Evalbot)++ | README:
Merge branch 'master' of github.com:perl6/evalbot
19:41
diakopter sigh 19:42
sorear nqplua: say("Hello world") 19:42
diakopter not yet
diakopter evalbot control restart 19:46
sorear nqplua: say("Hello world") 19:46
diakopter o_O
p6eval nqplua: OUTPUT«---␤Hello world␤» 19:46
diakopter golly 19:47
nqplua: say(44)
p6eval nqplua: OUTPUT«---␤44␤»
sorear is it using try.sh?
diakopter yeah; I commented out the make line just now
sorear if so that is where the --- is coming from 19:48
diakopter ok I'll comment out that too
diakopter nqplua: say(44) 19:48
p6eval nqplua: OUTPUT«44␤»
dalek albot: ccb34fd | (Perl 6 Evalbot)++ | evalbot.pl:
add nqplua target
19:49
diakopter sorear: did you see my comment about NQPClassHOW above?
sorear diakopter: yes 19:50
diakopter I've been trying to track it down without luck
a couple of hours
sorear gimme a failing file
diakopter 25-class.t
sorear thanks 19:51
diakopter I fixed a few other things after you went to sleep last night
sorear yeah, already pulled 19:52
diakopter also at moritz++ suggestion I did some microbenchmarking of replacing hashlookups with fixed array indexes; the result was promising 19:53
diakopter sorear: hmmmmm NQPClassHOW is a P6opaque. that doesn't seem right 20:03
sorear it doesn't seem entirely wrong to me 20:04
NQPClassHOW.HOW is an instance of KnowHOW and uses the KnowHOWRepr 20:05
s/is/should be/
but I guess as long as .HOW.find_method works NQPClassHOW can use whatever repr it wants
nqplua: my $tyo = NQPClassHOW.new_type(name => "Foo") 20:07
p6eval nqplua: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " NQPClassH"␤current instr.: 'parrot;HLL;Grammar;panic' pc 670 (ext/nqp-rx/src/stage0/HLL-s0.pir:436)␤called from Sub 'parrot;JnthnNQP;Grammar;infix:sym<=>' pc 69129 (gen_grammar.pir:18545) (Grammar.p…
sorear nqplua: my $tyo := NQPClassHOW.new_type(name => "Foo") 20:08
p6eval nqplua: OUTPUT«luajit: RakudoRuntime.lua:364: RakudoRuntime.lua:339: RakudoRuntime.lua:582: No method 'new_type' found in knowhow 'Any'␤stack traceback:␤ [C]: in function 'error'␤ RakudoRuntime.lua:364: in function <RakudoRuntime.lua:347>␤ y.lua:45: in function 'Invoke'␤ y.lua:195:
..in f…
sorear blink
diakopter: if you aren't already using it, rlwrap = awesome 20:09
awwaiid rlwrap++ # used it in the ocaml repl a lot 20:11
moritz nom: say 1 +>>3 20:24
p6eval nom 9c2880: OUTPUT«===SORRY!===␤Confused at line 1, near "say 1 +>>3"␤»
moritz nom: say 1 +> 3 20:25
p6eval nom 9c2880: OUTPUT«0␤»
moritz nom: say 1 +< 3
p6eval nom 9c2880: OUTPUT«8␤»
sorear niecza: say 1 +>>3
p6eval niecza v11-20-gb962c2f: OUTPUT«===SORRY!===␤␤Preceding context expects a term, but found infix > instead at /tmp/NYn09fOaMg line 1:␤------> say 1 +>⏏>3␤␤Parse failed␤␤» 20:26
diakopter sorear: any thoughts? I'm stumped. :( 20:38
sorear I've narrowed the failure down to the compose method
before compose, the object is completely fine 20:39
diakopter sorear: I thought it was dying while in compose (at the call to publish_method_cache at the end 20:43
)
sorear hrm, how did Any get into @!mro 20:49
benabik Isn't any the automatic base class? 20:50
moritz benabik: probably not this early in the bootstrap :-) 20:51
sorear diakopter: the problem appears to be very simple, and I have no idea why it is *only* affecting 6model/lua 20:52
diakopter do explain :)
sorear diakopter: publish_method_cache calls .method_table on everything in @!mro. @!mro contains a reference to Any (because there is no "Mu", so Mu comes up undefined). Any is a knowhow, so Any.HOW doesn't have a method_table. 20:53
diakopter ooooo maybe b/c I deleted Mu from P6Objects 20:54
sorear You what?
diakopter me re-adds it
sorear what is P6objects anyway 20:55
diakopter a .pm that each tried file loads
moritz niecza: say 1152921504606846976 / 2 20:56
diakopter omg that fixed it
p6eval niecza v11-20-gb962c2f: OUTPUT«576460752303423488/1␤»
moritz niecza: say 1152921504606846976 +< 32
p6eval niecza v11-20-gb962c2f: OUTPUT«0␤»
moritz niecza: say 1152921504606846976 +< 16 20:56
p6eval niecza v11-20-gb962c2f: OUTPUT«0␤»
diakopter sorear: that fixed all the tests but 45-smartmatch.t 20:57
moritz oh my, I just found that the libtommath shift functions shift by "digits"
and a "digit" is an unsigned long by default 20:58
so not quite the same as a bitshift op in p6 :(
no wonder I got nonsense results
dalek odel: ed3b34c | diakopter++ | common/NQP/P6Objects.pm:
re-add Mu to P6Objects; makes the entire test suite pass but the one that does regexes. sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ sorear++
sorear oh, right. 20:59
jnthn Ohhai. I'm home. 21:00
phenny jnthn: 05 Nov 20:04Z <diakopter> ask jnthn my eyes bleed from debugging nqplua; it needs a fresh set of eyes
sorear niecza's bitshift ops are still using int32
diakopter :)
sorear o/ jnthn
jnthn ...I'm so tired I just read "bitshift" as something else :)
moritz :-)
jnthn o/ sorear
sorear diakopter: I think I'm going to take a break now, I'll let jnthn or you get 45-smartmatch.t passing
jnthn is amazed at the nqplua progress while
diakopter sorear: thanks again for all your help 21:01
jnthn I'm certainly going to be joining in. :)
sorear++ diakopter++
diakopter nqplua: class A { }; say(A.new());
p6eval nqplua: OUTPUT«Rebuild in progress␤»
diakopter hrm 21:02
I think I got the rebuild script wrong 21:03
sorear jnthn: can nqpclr do regexes? 21:04
nqpclr: say("Hello world") 21:05
nqpnet: say("Hello world")
jnthn sorear: Only to a limited degree.
p6eval nqpnet: OUTPUT«(timeout)Null PMC access in find_method('compile')␤current instr.: 'main' pc 91202 (gen_grammar.pir:1151)␤make: *** [NQPSetting.dll] Error 1␤Null PMC access in find_method('compile')␤current instr.: 'main' pc 91202 (gen_grammar.pir:1151)␤»
jnthn sorear: If nobody else gets to it before me, I will dig in to porting pmichaud's QRegex
diakopter nqplua: class A { }; say(A.new()); 21:07
p6eval nqplua: OUTPUT«Rebuild in progress␤»
diakopter ergh
jnthn: what will you have the regex compiler emit? pir? 21:08
benabik What is nqplua?
diakopter jnthn's 6model/dotnet ported to lua
jnthn diakopter: er, not if we want to run it on lua ;)
diakopter :)
jnthn diakopter: I'll have to work out how to make it emit Lua. I suspect it'll just require hard thinking and beer. :) 21:09
diakopter sorear: I seem to have broken nqplua rebuild 21:11
first, my rebuild script never terminates
diakopter goes to fix 21:12
japhb moritz, now that I'm bak: I understand the two Failure handling issues you showed, but why would that change what we return from Str.Numeric? Is there somewhere in Rakudo itself that we depend on not returning Failure from a Numeric coercion? Which is to say, why does Str.Numeric fail in some erroneous cases, return 0 for others, and silently ignore yet more?
diakopter nqplua: class A { }; say(A.new());
p6eval nqplua: OUTPUT«Rebuild in progress␤»
moritz japhb: thing is, if we return a failure, we break user code in ways that are *really hard to diagnose 21:13
diakopter sorear: how do I reset the rebuilding state of nqplua
moritz git clean -xdf
deletes all files not under version control 21:14
diakopter no, I mean, evalbot thinks it's still rebuilding but it's not
japhb moritz, ah, OK. So always failing on erroneous inputs won't break Rakudo per se, but it will drive us nuts trying to figure out how user code is breaking -- so for common cases people accidently depend on, we DWIM instead of fail?
moritz japhb: correct
japhb OK, got it. 21:15
japhb thinks about how to incorporate that semi-intelligently in his refactorings
dalek p/bigint: 4715e25 | moritz++ | / (3 files):
bigint bit shift ops
21:16
sorear diakopter: kill the process 21:17
diakopter kill which process
(none are running that match nqplua) 21:18
sorear whatever process has an outstand flock lock on lock.nqplua
diakopter unfortunately I don't know how to do that. I'll try to read about it
nqplua: class A { }; say(A); 21:21
sorear nqplua: say(2)
p6eval nqplua: OUTPUT«A()␤»
nqplua: OUTPUT«2␤»
sorear I guess it finished 21:22
diakopter I rm'd the lockfile
now to make git pull not prompt for a password
diakopter anyone have any ideas on that? 21:23
masak ssh key?
(oh hai, #perl6) 21:24
japhb jnthn, can your optimizer optimize away blocks that are if($foo) where $foo is known 0 at compile time?
sorear pid 10536 on host04 is a git fetch process
it has a start time of "Jun11"
lichtkind sheers 21:25
sorear o/ lichtkind, masak
lichtkind lichtkind is back in his mission control seat
hai sorear
colomon sorear, o/
japhb diakopter, either as masak said using ssh as your transport, and using an ssh key that you have under ssh-agent (so that it can store the fact that you have unlocked the key already during the current session), or a ~/.netrc if you are stuck with HTTPS transport. 21:26
moritz diakopter: you can simply use an URL that does not need authentication
diakopter moritz: I thought I did
sorear diakopter: url = diakopter@github.com/diakopter/6model.git
diakopter: this is your problem 21:27
diakopter ah
diakopter fixes
moritz git://github.com/diakopter/6model.git
jnthn japhb: What does "known zero" mean?
japhb: constant? 21:28
diakopter evalbot: rebuild nqplua
evalbot rebuild nqplua
p6eval OK (started asynchronously)
diakopter nqplua: say(4)
p6eval nqplua: OUTPUT«4␤»
diakopter \o/
japhb jnthn, a constant, an enum, ... 21:31
diakopter jnthn: it doesn't necessarily need to emit Lua; it could be an interpreter 21:31
jnthn japhb: Not yet but it's decidedly doable
japhb jnthn, OK, thank you. 21:32
jnthn japhb: The current optimizer barely scratches the surface of what I want to do :) 21:33
moritz nqp: say(0xdead)
p6eval nqp: OUTPUT«57005␤»
japhb jnthn, Isn't that always the case?
:-)
jnthn yes ;) 21:35
diakopter nqplua: say(0xdead)
p6eval nqplua: OUTPUT«57005␤»
jnthn can never has enough tuits
japhb Oh, also, why does Str.Numeric hotpath 'NaN'? Is there some performance issue related to NaN propagation or somesuch?
masak they're in high demand and low supply.
moritz I think it was easier to deal with the right away in one spot than all over the place 21:36
japhb moritz, Ah, OK, so that can move if the implementation ends up easier another way. 21:37
moritz japhb: I'd say so, yes
japhb is wary of destroying hard-won behaviors just because they're not obvious ... and I good think I asked about the Failure case, too. :-) 21:38
moritz nom: say +^1
p6eval nom 9c2880: OUTPUT«-2␤»
japhb *a good thing
dalek p/bigint: d78307d | moritz++ | / (3 files):
bigint bitwise and, or, xor
moritz is binary negation just the same as -($number + 1) ? 21:39
masak think so. 21:40
benabik That's the definition of two's complement.
moritz then I know how to implement it for bigints ... tomorrow :-)
masak moritz: I think I've found a bug in the backtrace printer: gist.github.com/1343548
japhb Is there a reverse (searches backwords) form of pir::find_not_cclass?
moritz masak: yes, I know. But I don't think the backtrace printer is to blame 21:41
masak oh? 21:42
also, I think I've found a regression:
nom: class A {}; say A.new ~~ A.new
p6eval nom 9c2880: OUTPUT«No applicable candidates found to dispatch to for 'ACCEPTS'. Available candidates are:␤:(Mu, Mu $topic, Mu %_)␤␤ in method ACCEPTS at src/gen/CORE.setting:492␤ in block <anon> at /tmp/9AmMECK90Y:1␤ in <anon> at /tmp/9AmMECK90Y:1␤»
masak nom: say Any.new ~~ Any.new
p6eval nom 9c2880: OUTPUT«No applicable candidates found to dispatch to for 'ACCEPTS'. Available candidates are:␤:(Mu, Mu $topic, Mu %_)␤␤ in method ACCEPTS at src/gen/CORE.setting:492␤ in block <anon> at /tmp/SDubN8FKUJ:1␤ in <anon> at /tmp/SDubN8FKUJ:1␤»
jnthn masak: We tracked that down to missing ACCEPTS in Any, iirc?
masak b: class A {}; say A.new ~~ A.new
p6eval b 1b7dd1: OUTPUT«Bool::False␤»
masak jnthn: yes. 21:43
jnthn: well, I was unable to check whether it exists in b, but seems it does.
b: say Any.new ~~ Any.new
p6eval b 1b7dd1: OUTPUT«Bool::False␤»
masak submits rakudobug
moritz masak: I think the wrong file is come out wrongly out of the backtrace annotations already
masak moritz: but there's a fix, right? 21:44
moritz the handling of file names in Backtrace.pm is so trivial that I'd be shocked if it were wrong
masak ok.
moritz -> slepp 21:45
... modulo typos
masak phenny: "schlepp"? 21:46
phenny masak: "slow" (de to en, translate.google.com)
masak ;)
masak .oO( slov lift )
jnthn :D 21:48
lichtkind may i drop here my noob question with compiling rakudo?
masak moritz: as a bot, I'm confused by the above as to what to do. would an RT ticket be beneficial, or just noise? as a developer, I would much prefer for it to report the correct module -- I'm fine with the error not being in code you wrote, as long as it's fixed eventually. 21:49
lichtkind: ask away. :)
jnthn masakbot submit rt
masak submits rakudobug
whoa.
creepy. 21:50
jnthn ...works faster than p6eval
masak ;)
lichtkind how can i update the parrot version that is in my local rakuto git repo? 21:55
masak hm, does 'perl Configure.pl --gen-parrot' do the trick? 21:57
jnthn yes 21:58
well, if the version update is needed
lichtkind masak: thats embarassing i know that one why i forgot, oh wait i am sleepy bcause got up before 6 in bratislava today :) 22:01
lichtkind now actually thats what i done 22:02
theres ist something else
dalek odel: 64f520a | diakopter++ | lua/runtime/ (2 files):
first bit of prep for IntegerIndexesOptimizer
22:09
masak lichtkind: I forget things and do embarrassing things sometimes even when I'm well-rested. ;) 22:15
lichtkind where are the bins in rakudo? 22:17
i just need to set this path and then im done i believe 22:18
got it 22:21
my brain works :)
sorear j
masak 'night, #perl6 22:42
lichtkind good night 22:49
dalek odel: 0cbe07e | diakopter++ | lua/runtime/ (15 files):
add integer indexes for all the representations; put .class in the metatables (sorear++)
23:47
dalek odel: a72e595 | diakopter++ | lua/runtime/Runtime/ (6 files):
more indexing progress; more class structure cleanup
23:56