»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 johnmilton left
timotimo that was too easy, it can't be right 00:09
timotimo builds all the things 00:11
00:29 pecastro left
timotimo it wasn't right :) 00:29
00:33 berekuk left 00:36 denis_boyun left
timotimo i think i made it work! 00:37
and of course i forget to name the copied method "spurt" instead of "slurp" 00:39
Method 'jast' not found for invocant of class 'NQPMu' 00:45
..... so ... ?!
ah, of course
00:48 jnap joined 00:52 jnap left
timotimo gist.github.com/timo/4134cd44443420e1d512 :\ 01:06
01:15 jnap joined 01:16 dayangkun joined 01:34 dayangkun left 01:42 hypolin joined 01:43 hypolin left 01:47 dayangkun joined 02:07 jnap left 02:37 araujo left 02:39 dayangkun left
lue p: my $a = (1,2,3,2,2,2,2).BagHash; say $a.perl; 02:58
camelia rakudo-parrot 0bdc76: OUTPUT«(1=>1,2=>5,3=>1).BagHash␤»
lue p: my $a = (1,2,3,2,2,2,2).BagHash; say $a.keys.perl; say $a.values.perl; 02:59
camelia rakudo-parrot 0bdc76: OUTPUT«(1, 2, 3).list␤(1, 5, 1).list␤»
lue p: my $a = (1,2,3,2,2,2,2).BagHash; say $a.kv.perl;
camelia rakudo-parrot 0bdc76: OUTPUT«((0, 1), (1, 2), (2, 3)).list␤»
lue BagHash.kv is completely useless, at least based on what I was expecting.
colomon p: my $a = (1,2,3,2,2,2,2).BagHash; say $a.pairs.perl 03:07
camelia rakudo-parrot 0bdc76: OUTPUT«(1 => 1, 2 => 5, 3 => 1).list␤»
lue Yeah, I ended up using .pairs :) . I still would like to know why .kv does that though. 03:13
colomon lue: I think it's doing $a.keys.kv 03:24
there is not .kv method in Baggy
lue That's interesting. 03:25
colomon same in niecza 03:26
lue Is there any reason for it, or is it just oversight? 03:27
colomon dunno
certainly seems like if you have keys and values, you ought to have equivalent kv 03:34
lue I'd understand more if it just plain didn't work, but I fail to see how the way it currently works is ever helpful. 03:35
colomon current version is clearly useless, cause the ordering is random 03:37
benabik ... What is .kv doing? 03:39
colomon trying a fix here.
benabik: I believe it's converting to a list and the doing .kv on the list 03:40
03:40 go|dfish joined, dayangkun joined
colomon lue: I need to go to bed soon, you're going to have to add tests to roast for these. ;) 03:43
lue :) 03:44
colomon > my $a = (1,2,3,2,2,2,2).BagHash; say $a.kv.perl; 03:46
((2, 5), (1, 1), (3, 1)).list
colomon is compiling both JVM and Parrot here, which is slowing things down a bit 03:48
benabik colomon: Not Moar? 03:49
colomon benabik: Moar didn't work on OS X last time I ran Configure.pl here. 03:50
my linux box has a rakudo build with all three
benabik colomon: Benabik/rakudo nom has a fix. Don't have commit bit to merge it myself. 03:51
colomon is it one pull and everything should work?
I'd really like to go to bed in then next ten minutes. ;) 03:52
benabik It should. But no need to stay up late. ;-)
diakopter I can push it 03:53
benabik: ^
colomon > my $a = (1,2,3,2,2,2,2).Set; say $a.kv.perl; 03:54
((2, Bool::True), (1, Bool::True), (3, Bool::True)).list
03:55 chirkov joined
benabik diakopter: Feel free, if you'd like. Opened a PR, just waiting for someone to do it. 03:55
diakopter ohh 03:56
I can test on mac too
benabik Might want a Windows test, but I'm pretty confident on moving a build flag Rakudo's Configure was removing. :-D 03:57
dalek kudo/nom: 909c76a | (Solomon Foster)++ | src/core/ (2 files):
Add Setty.kv and Baggy.kv.

  lue++ pointed out that calling these on Sets and Bags returned silly results,
so I implemented proper versions.
03:58
lue I'll write the tests for them later, colomon. 03:59
03:59 btyler joined
colomon k 03:59
I think the patch will make MixHash.kv work properly too.
04:03 xilo joined
colomon it is extremely lightly tested. ;) 04:05
04:08 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left 04:09 preflex_ is now known as preflex 04:11 jeffreykegler left 04:14 chirkov left 04:20 kaleem joined
colomon p: my $a = (1,2,3,2,2,2,2).BagHash; say $a.kv.perl; 04:21
camelia rakudo-parrot 0bdc76: OUTPUT«((0, 1), (1, 2), (2, 3)).list␤»
04:26 ldthien0 joined 04:28 raiph left 04:45 kaleem left 04:46 BenGoldberg left
lue I add the tests to S02-types/{set,bag,mix}hash.t , correct? 04:47
05:02 xilo left
lue Hrm... I don't know where I should put the .kv tests actually. 05:03
05:05 benabik left 05:17 ldthien0 left 05:23 bjz joined 05:26 [Sno] left 05:33 SamuraiJack joined
moritz good morning 05:54
dalek kudo/nom: b7548b5 | benabik++ | Configure.pl:
Fix build on OS X

OS X's linker seems to be more strict than Linux's and requires you actually tell it to link against the moar library. Re-use the previously Windows specific @moarimplib@ to add that flag.
kudo/nom: 2860b2a | benabik++ | .gitignore:
Ignore OS X shared libraries
kudo/nom: f60851e | benabik++ | Configure.pl:
Remove unneeded Windows tweak
kudo/nom: 69dfd90 | benabik++ | tools/build/Makefile-Moar.in:
Add DESTDIR to m-install
kudo/nom: 8f4edac | moritz++ | / (3 files):
Merge pull request #238 from Benabik/nom

Fix build on OS X
06:01 benabik joined
diakopter moritz: should DESTDIR be added to the create-moar-runner.pl line? 06:02
dalek t--IRC/concurrency: e1fbbc9 | (Geoffrey Broadwell)++ | lib/Net/IRC/Logger.pm:
Various small Logger improvements

  * Add a .close method (which delegates to closing the log channel)
  * Log the $*Thread.id as part of the log message prefix
  * Log the start and end of the log itself
t--IRC/concurrency: acccb8f | (Geoffrey Broadwell)++ | lib/Net/IRC/SocketConnection.pm:
Switch SocketConnection to use supplies instead of channels for receiving data from the socket; include both recv (raw buffer data) and get (chomped lines) supply variants
06:03 dmol joined 06:04 Mouq left
japhb j: my $s := Supply.new; $s.tap({ die "oops" }); $s.more("checking ..."); say "alive!"; 06:06
benabik diakopter: IIRC create-moar-runner creates the file in the current directory. And DESTDIR shouldn't be in the paths it stores. (It's usually used to package into a temp directory, the final path is just prefix.)
camelia rakudo-jvm 909c76: OUTPUT«oops␤ in block at /tmp/b2G7cqdQLX:1␤␤»
06:09 kaleem joined 06:10 darutoko joined 06:13 btyler left 06:21 dmol left 06:24 [Sno] joined 06:28 markov left, markov joined, [Coke] left 06:30 bjz left 06:34 bjz joined 06:35 [Coke] joined
diakopter benabik: ah ok 06:39
06:42 Shellcat joined 06:51 Mouq joined 06:52 FROGGS left
dalek ast: 57b69f5 | lue++ | S02-types/ (3 files):
[S02-types] Add tests for (Bag&Mix&Set)Hash.kv
07:05
Mouq benabik+++ \o/ I can finally build and run Rakudo Moar! Woo!
and it's pretty great 07:09
07:20 peteretep left 07:25 dmol joined 07:26 dmol left 07:27 dmol joined 07:31 Shellcat left 07:38 berekuk joined 07:41 filly joined 07:51 bjz left, bjz joined, FROGGS joined 07:53 Mouq left 07:55 berekuk left 08:00 berekuk joined 08:17 apejens left 08:18 apejens joined 08:21 berekuk left 08:29 zakharyas joined
hoelzro morning #perl6 08:59
FROGGS o/
dalek p: c59f144 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CArrayInstance.java:
Update outdated error message.
09:00
p: 5af4c0b | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/ (5 files):
Basic CStructs on JVM.

Only support native (num, int) attributes so far, but objects are on their way. Also still to be done is CArrays of CStruct.
tadzik arnsholt++ 09:01
FROGGS arnsholt++ # :o) 09:04
nwc10 arnsholt++ 09:19
09:28 denis_boyun joined 09:41 dakkar joined 09:42 pecastro joined
jnthn morning o/ 09:46
yay, NativeCall on JVM commits! arnsholt++ 09:47
moritz \o jnthn, *
09:53 yves_ joined
hoelzro ahoy jnthn 09:54
09:57 daniel-s_ joined 09:59 sqirrel joined
nwc10 how are the spectest passes looking this "week"? :-) 10:00
hoelzro .oO( spec-tacular? ) 10:04
jnthn nwc10: r-m is >98%, not yet 99% afaik 10:09
FROGGS jnthn: I bet it is >=99% 10:10
for today I mean... because I guess that yesterday's run started before the patch flood 10:11
jnthn We'll see :) 10:14
Hitting 99% by release would be cool 10:15
masak right, this week is release week. 10:16
antenoon, #perl6 10:17
hoelzro greetings masak
FROGGS meh, I wanna run the v5 m-spectest and wanna know how long it takes :( 10:18
jnthn FROGGS: That's the NYI serialization conflict resolution issue blocking you? 10:24
FROGGS jnthn: exactly
jnthn: it is not pressing, I am just eager to see it running :o) 10:25
dunno if I could fix it, I guess not
jnthn FROGGS: Well, that one is slightly pressing to me in that it blocks JSON::Tiny, which is critical path for Panda, which is critical path for Moar Star :) 10:26
FROGGS true
jnthn: do you have a simple test case already?
jnthn FROGGS: No, but I don't think I need one. 10:27
FROGGS k
:o)
jnthn FROGGS: I know where the NYI is 'cus I remember leaving it as a todo a couple of months back.
FROGGS ... and I can't even remember what last week happened 10:28
nwc10 wants Moar stars 10:38
moritz just needs panda and nativecall :-)
nwc10 (but just saying that doesn't help)
jnthn nwc10: No, but the number of bugs you've hunted/fixed/helped fix does help :) 10:39
10:40 kaare_ left 10:42 kaare_ joined, denis_boyun left
timotimo jnthn: i'm not sure how to turn bindattr and getattr into $! vars without pessimizing all of them into making object registers :( 10:54
woolfy Hi all, there will be a DBIx::Class hackathon in April in Swindon: github.com/castaway/DBIx-Class-Hac.../README.md
I have seen in DBIish ( github.com/perl6/DBIish/blob/master/CREDITS ) that some of you have been busy with DBI-stuff for Perl 6. 10:55
jnthn timotimo: Oh, the _i thing? Just set :returns(int) on the QAST::var.
And n => num, s => str
timotimo oh!
woolfy This seems to be a nice opportunity for Perl 6 people to try to convince the DBIx::Class people to make some more DBI-stuff for Perl 6.
jnthn Simples!
timotimo also, i think the reason why my spurt implementation does nothing is that i forgot to flip the buffer 10:56
woolfy Like, to come to the hackathon and work with mst and ribasushi to make a DBIx::Class for Perl 6.
I hope somebody is interested.
timotimo nope, that wasn't it :/ 10:57
woolfy Anyway, Liz and I are invited to come over (and we are thinking of coming). And now, you are invited too (and we hope some of you will come, so we will not be the only Perl 6 afficionados). 10:58
moritz since April is ETA of my second daughter, I'm not going to come :( 10:59
though it does sound very tempting
woolfy Ow, of course not. moritz++ for enhancing the gene pool with more potention Perl 6 people.
moritz and $wife has told me about Swindon before
woolfy So, pregnant wife indicated that you might be OK to go to Swindon. That's cool. 11:02
11:04 dayangkun left
timotimo so, flipping the buffer wasn't right, but rewinding it was also not correct ... huh?! 11:07
11:08 pat_js joined
timotimo yay, i made it work \o/ 11:13
dalek p: 7922bca | (Timo Paulssen)++ | src/vm/jvm/ (4 files):
implement nqp::spurtasync.
11:15
kudo/nom: b708436 | (Timo Paulssen)++ | src/vm/jvm/core/IOAsyncFile.pm:
use nqp::spurtasync for IO::Async::File.spurt
11:16
colomon moritz++! # yay news! 11:18
timotimo actually, the way i implemented spurt there is more like a "append to file" rather than "replace entire file" operation 11:19
11:24 lue left 11:26 odoacre left
colomon timotimo: should you have bumped nqp version or somesuch? 11:27
11:27 fhelmberger joined
colomon is trying to rebuild, and Configure.pl didn't run anything, which is kind of worrying 11:28
timotimo oh, whoops
11:28 odoacre joined
timotimo good point 11:28
colomon doesn't yet not if the build works or not
11:29 pat_js left
timotimo it's going to fail with "no registered blah for spurtasync" 11:29
colomon actually failed with 11:30
Method 'jast' not found for invocant of class 'NQPMu'
in (gen/jvm/stage2/QAST.nqp:3790)
for me
timotimo ah, yes 11:32
that's the even less helpful error message you get when you didn't register the op with the Operations
colomon is not awake enough to figure out how to fix this 11:34
timotimo just pull again?
oh, oops
i didn't succeed in pushing
sorry 11:35
dalek kudo/nom: aa88102 | (Timo Paulssen)++ | tools/build/NQP_REVISION:
bump NQP_REVISION to get nqp::spurtasync on jvm
11:36
11:36 denis_boyun joined
colomon timotimo++ 11:37
11:37 lue joined
timotimo though i must admit the api for spurt is kind of weird 11:38
IO::Async::File.new.open("foobar", :w).spurt("hello world")
FROGGS .oO( "foobar".IO.spurt("hello world", :async) ) 11:39
colomon building rakudo-moar on OS X just failed for me. :() 11:47
:(
FROGGS how/where?
colomon clang -dynamiclib -O1 -Wl,-rpath,/Users/colomon/sol/temp/rakudo/install/lib -O1 -lpthread -o dynext/libperl6_ops_moar.dylib dynext/perl6_ops.o dynext/container.o -lmoar 11:48
ld: library not found for -lmoar
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [dynext/libperl6_ops_moar.dylib] Error 1
11:58 rindolf joined
nwc10 This might be stating the obvious, but it only occurred to me yesterday 11:58
doing reads of UTF-8 is messy, because you can get code points split across buffer boundaries 11:59
and IIRC Parrot doesn't cope well with that. (Nor does bits of Perl 5, but hey)
but at least you know you have a partial code point
for NFG, you can't know that you have a complete grapheme until you have fully read the next code point too 12:00
which, I suspsect, is going to be a gotcha.
jnthn nwc10: Yes, that one has been worrying me for a while. 12:01
nwc10 I'd not seen anyone note it as a gotcha. Hence the bold :-)
jnthn nwc10: I figured it means that on socket stuff, you can't hand back a grapheme until the next packet arrives. 12:02
Since the next packet may bring along a combiner.
diakopter it's a matter of acting as if you haven't received some codepoints until you receive one from the next grapheme or eof. And then act as if you haven't received that next thing yet necessarily 12:03
jnthn Aye
colomon: Hm, there's a PR that may not be merged yet... 12:04
diakopter nwc10: TimToady, jnthn, and I did mention it to each other, but off channel
jnthn colomon: Oh no, it has been
colomon: But maybe needs a later Moar / NQP?
oh, the bumps happened in NQP and I guess you got the one timo pushed for the async stuff, though. So, hm. 12:05
colomon right 12:06
I did just get a complete build of all three on Linux, timotimo++ 12:07
12:09 djanatyn left
timotimo jnthn: i should make sure to reset the position of the IO::Async::File before spurting data into it, right? 12:10
12:10 djanatyn joined
jnthn timotimo: Guess so 12:11
timotimo: The API there is all rather preliminary
timotimo should there also be an async write like my spurt implementation currently behaves? 12:12
12:12 sqirrel left
jnthn Well, that's just be .print I guess... 12:12
timotimo actually, i could rename asyncspurt to asyncwrite, expose a "rewind file pointer" op and combine the two into .spurt and .print on IO::Async::File
12:13 Tene left, Tene joined, Tene left, Tene joined
jnthn timotimo: um, wait...isn't this really about whether you open it :w or :a? 12:13
timotimo oh? 12:14
*could* be. let me test it
jnthn Well, not saying it works that way, but that it probably should.
timotimo will have a complete build of all backends soon, then i'll experiment some more 12:20
12:20 atroxaper joined
Ulti colomon failed at the same place for me too 12:29
^ re: OSX build of moar Rakudo 12:30
I did a make clean but am now trying after a completely fresh repo
12:31 Celelibi left
FROGGS nwc10: at least parrot does not bail out anymore when it reads a chunk that ends with a partial utf8 sequence 12:32
colomon Ulti: I was trying from a fresh repo too 12:38
FROGGS colomon: is there a moar lib in -rpath,/Users/colomon/sol/temp/rakudo/install/lib ? 12:40
s/-rpath,// 12:41
12:41 sqirrel joined
timotimo jnthn: should i be able to .spurt on the same IO::Async::File twice in a row? iow, should .spurt .close after success? 12:43
Ulti 'ld: library not found for -lmoar' that looks like the same problem that was reported as fixed, so maybe its just not been merged yet 12:44
< benabik> colomon: Benabik/rakudo nom has a fix. Don't have commit bit to merge it myself. 12:45
12:46 Celelibi joined
colomon Ulti: I thought that was already merged? 12:47
jnthn Yeah, I see it as merged too
Ulti yeah I just did a pull and it said up to date from benabik's stuff
so it is merged
jnthn timotimo: Take same semantics as non-async, I think.
timotimo i think non-async spurt will close after writing
colomon FROGGS: there is a libmoar.dylib 12:48
timotimo i think $iofile.close should set .closed
er, opened
moritz to "Maybe" :-)
timotimo it does close the file handler, but it doesn't make it be False apparently?
FROGGS colomon: that is not too bad... do we need to set LD_RUN_PATH or LD_LIBRARY_PATH? 12:49
timotimo i suppose AsyncFileHandle needs a custom boolification spec
not that i know how to set that 12:50
colomon FROGGS: I dunno. looking at env, the only likely thing I see set is DYLD_FALLBACK_LIBRARY_PATH 12:51
(in my default env)
FROGGS no, these two are not set by default....
you can try to set LD_LIBRARY_PATH to the path pasted above and try again to compile it 12:52
colomon: if it does not care about that var, you could look a man dyld 12:53
at*
it should state how to specify a search path for libs at compile time
(which should mbed that search path for runtime later)
FROGGS reads www.eyrie.org/~eagle/notes/rpath.html 12:54
timotimo hunts after HLLConfig.ioType
12:54 jeffreykegler joined
colomon hmm, I see I do have DYLD_LIBRARY_PATH=:/usr/local/netpbm/lib:/Users/colomon/tools/rakudo/install/lib in the env 12:54
12:55 jeffreykegler left
timotimo found something, yay 12:55
FROGGS ahh, LD_RUN_PATH=<path_here> would be a choice or passing -R /your/path/here 12:57
12:57 bjz_ joined 12:58 kbaker joined
colomon FROGGS: I've tried adding it to DYLD_LIBRARY_PATH, LD_LIBRARY_PATH, and LD_RUN_PATH. None of them help 12:59
FROGGS :/
but not at the same time, right?
timotimo hm. i set Ops.setboolspec(tc.gc.BOOTIO, BoolificationSpec.MODE_METHOD, Ops.findmethod(tc, tc.gc.BOOTIO, "boolify"), tc);
but i'm not sure where to put that exact method for it to work properly 13:00
colomon I've used either LD_LIBRARY_PATH and LD_RUN_PATH each with DYLD_LIBRARY_PATH, but not all at once
timotimo just into class IOHandle inside reprs/?
13:00 bjz left 13:01 kaleem left 13:04 SamuraiJack left, kivutar joined 13:05 btyler joined
colomon FROGGS: all three at once also fails 13:07
13:08 kbaker left
FROGGS k, I just wanted to make sure that LD_RUN_PATH alone fails too 13:08
13:08 SamuraiJack joined
colomon FROGGS: can try 13:08
FROGGS I really need to get my osx vm up and running again :/
colomon still fails 13:09
13:14 SamuraiJack left
nwc10 colomon: I suggest (and I can't do better than this) - build Perl 5 from source, passing -Duseshrplib to its Configure. Install that perl. Use it to build and install an XS module (eg DBI) 13:15
see what compiler and linker flags it uses
steal that.
colomon that's a bit complicated for the level of attention I can give this today, alas. :(
colomon doesn't really need moar OS X working today, but wanted to try 13:16
13:19 silug left
btyler for folks who just want r-m to build on OSX, you can get it going by removing "-lmoar" and "-install_name" from 291 of the makefile. I haven't learned enough to say -why- that fixes it, or why benabik++'s tweaks didn't resolve the build failure in all cases 13:27
13:29 sqirrel left
colomon btyler: I don't seem to have an -install_name in mine? removing -lmoar gets me past the failure I was seeing above, but then the link fails with undefined symbols, starting with _MVM_6model_add_container_config 13:30
colomon is completely breaking his $work build 13:31
btyler colomon: I'll try again with a fresh rakudo clone. I just had it with --backends=moar --gen-moar, but maybe there was something left over from a previous build 13:33
colomon btyler: thanks 13:34
13:34 filly is now known as Alula 13:37 kaleem joined 13:38 ajr joined 13:39 ajr is now known as Guest71128 13:41 Guest71128 is now known as ajr_
btyler colomon: hm, yeah, with a totally fresh copy I have the same thing. here's a gist with my (working just a minute ago) makefile from before the new clone: gist.github.com/kanatohodets/33034...1-mak-L290 13:48
13:48 daniel-s_ left
btyler same thing being 'no build'. it works if you put the path to libmoar.dynlib and remove -lmoar, which ends up looking just like the line in that ^ gist 13:51
13:55 uon joined
colomon btyler++ # trying now 13:55
13:55 uon left 13:56 cognominal joined
colomon write error? 13:57
huh, that stopped make, but then make install seemed to work 13:58
btyler I've seen that too. just on the last step, cp-ing perl6-m to perl6
colomon Woot!
working perl6-m!
btyler++ !
13:59 kbaker joined
btyler woohoo! glad it worked for someone besides me :) 13:59
Alula Hey all 14:03
colomon btyler: now if you can just figure out how to modify the setup to make it happen automatically… ;) 14:04
FROGGS hi Alula 14:06
btyler colomon: short of hackery in configure.pl, I'm unfortunately pretty ignorant of how to do that. benabik made some changes just yesterday with that aim, not sure why they didn't work out for us
masak oh hai Alula 14:14
14:34 jnap joined, bluescreen10 joined
Alula Hi 14:34
dalek rl6-roast-data: e0fae9a | coke++ | / (6 files):
today (automated commit)
14:35
Alula Are there any good OAuth modules for p6 yet?
dalek kudo-star-daily: 9665b9c | coke++ | log/ (5 files):
today (automated commit)
[Coke] moritz++ 14:36
FROGGS Alula: look at modules.perl6.org 14:37
moritz [Coke]: what did I do?
FROGGS multiply?
moritz oh. Not yet :-) 14:38
Alula FROGGS: That's a no :) New project time :D
FROGGS Alula: have fun :o) 14:39
masak ++Alula 14:41
Alula So projects are Net::OAuth (or should that be HTTP::OAuth)?
and Net::Twitter :P
FROGGS I'd prefer Net::, but I dunno why 14:43
benabik colomon: I've been seeing `make: write error`, and actually occasional segfaults. NO idea where it's coming from. A little searching around has told me the write error is probably spurious, there's a patch for make to fix it. 14:44
hoelzro I wish that Firefox and other tools enabled some sort of stemming algorithm when searching on a page 14:45
so searching for "package" would bring up "packaging" 14:46
Alula Is there a CPAN-like for p6 yet? I havent played with modules yet 14:47
colomon Alula: it's called panda.
Alula Can it install prereq modules?
colomon yes
huf pandaring to the masses
Alula Nice
colomon well, only on rakudo parrot so far 14:48
huf is that why it's called panda?
colomon the jvm and moar versions should be up and running pretty soon, but as far as I know neither works as of today.
jnthn I'm pretty sure Panda works on JVM?
preflex jnthn: you have 3 new messages. '/msg preflex messages' to read them.
moritz aye, it did last I tried 14:50
colomon is trying
14:51 dmol left
Alula I may torture myself and implement SOAP at some point :/ 14:52
colomon moritz, jnthn: JSON::Tiny doesn't seem to work for me under JVM? 14:53
14:56 BenGoldberg joined
masak Alula: that would be interesting. try to implement it without any injection attack vulnerabilities ;) 14:56
moritz colomon: how does it not work?
colomon t/03-unicode.t .... Cannot unbox a type object 14:57
Error while creating backtrace: Cannot unbox a type object
same for t/04-roundtrip.t
moritz colomon: works for me here (no precompilation though) 14:58
colomon moritz: it fails in there during panda bootstrap here. 15:00
15:01 prevost joined
colomon (here being my linux box) 15:01
moritz ah, I tried the current version from the json repo
colomon: if you cd into the json submodule, do a 'git pull origin master' there, does the error go away?
15:05 jnap left
colomon moritz: yes, but you have to override the git submodule bits of bootstrap.pl else it will just overwrite with the incorrect version 15:07
moritz or simply commit :-) 15:14
15:15 mtk joined
moritz testing here now; if it works, I'll push 15:16
colomon moritz++ 15:18
dalek nda: 8b6040b | moritz++ | ext/JSON__Tiny:
Update to newest JSON::Tiny

should fix the bootstrap on perl6-j
15:19 immortal left
hoelzro diakopter++ jnthn++ # talking at FOSDEM 15:21
moritz funny thing is, the last few JSON::Tiny changes that this pulled in weren't even meant as fixes; they were meant as performance optimizations :-)
one of them by FROGGS++ 15:22
colomon well, making it work is quite the performance optimization, no? ;)
15:27 kaleem left, bjz joined 15:29 kaare_ left 15:30 bjz_ left
japhb nwc10: re: irclog.perlgeek.de/perl6/2014-01-20#i_8144068 -- that's the reason for the crazy starting at github.com/TiMBuS/Net--IRC/blob/co...ion.pm#L32 through line 57. I figured the only thing that couldn't be modified, or partially encoded, or what have you, was the input line separator. 15:31
So to get lines out of socket recv'd chunks, it keeps a buffer that it loops doing (append new chunk, decode, split on line separator, if there are any complete lines emit them, then reencode the emitted portion to determine how much of the buffer can be dropped and pull that off the front) 15:32
Messy and does a lot of work I'd love not to do, but I'm not sure of a better solution in Perl 6 space (as opposed to VM space) 15:33
Oh, FWIW, at least on JVM, sockets don't like having their input record separator changed while open. I wrote the referenced code on the assumption people might try to do that (like changing from CRLF to LF after HTTP headers have been read), but changing the length of the IRS seems to pretty much confuse the heck out of the socket. 15:36
15:37 dmol joined, colomon left
japhb timotimo: Your spurt commits seem to still contain a fair amount of debugging output. 15:38
15:38 ajr_ left 15:39 colomon joined, ajr joined, ajr is now known as Guest28585 15:41 Guest28585 is now known as ajr_ 15:42 hangglider joined
japhb my $s := Supply.new; $s.tap({ .say }); my $t := on -> $out { $s => { more => sub ($val) { die "oops" }, quit => sub ($error) { say "Caught in on-quit: $error" } } }; $t.tap({ say "More in final tap" }, quit => { say "Quit in final tap" }); start { $s.more("checking ..."); say "Alive in second thread" }; say "Alive in first thread"; sleep 1; say "sleeping again"; sleep 5 15:51
j: my $s := Supply.new; $s.tap({ .say }); my $t := on -> $out { $s => { more => sub ($val) { die "oops" }, quit => sub ($error) { say "Caught in on-quit: $error" } } }; $t.tap({ say "More in final tap" }, quit => { say "Quit in final tap" }); start { $s.more("checking ..."); say "Alive in second thread" }; say "Alive in first thread"; sleep 1; say "sleeping again"; sleep 5
15:51 hangglider left
camelia rakudo-jvm aa8810: OUTPUT«(timeout)Alive in first thread␤checking ...␤Quit in final tap␤» 15:51
japhb jnthn: Why does the above ^^ never say "Alive in second thread"?
It's like after capturing the exception in $t.tap:quit it still doesn't continue with the second thread any more. 15:53
Although I should say that locally, it does say "sleeping again" before exiting.
jnthn japhb: I'm not immediately sure. The on implementation has a CATCH in the right place... 16:00
japhb: Can you add a CATCH inside the start and see if it fires?
Or throw a try before the "on"
uh, sorry
Before the $s.more
16:02 Psyche^ left 16:04 Psyche^ joined
japhb jnthn: OK, hold on a sec 16:04
j: my $s := Supply.new; $s.tap({ .say }); my $t := on -> $out { $s => { more => sub ($val) { die "oops" }, quit => sub ($error) { say "Caught in on-quit: $error" } } }; $t.tap({ say "More in final tap" }, quit => { say "Quit in final tap" }); start { try $s.more("checking ..."); say "Alive in second thread" }; say "Alive in first thread"; sleep 1; say "sleeping again"; sleep 5 16:05
camelia rakudo-jvm aa8810: OUTPUT«checking ...Alive in first thread␤␤Quit in final tap␤Alive in second thread␤sleeping again␤»
japhb Huh.
So the exception is getting all the way back to the $s.more(). 16:06
And while you're ruminating on that, I've got another one for the crowd:
r: sub foo { say(++( state $ )) }; BEGIN foo(); BEGIN foo(); foo(); foo()
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«1␤2␤1␤2␤»
jnthn Well, remember that .more is synchronous and pushes stuff throughthe pipeline...
japhb Why is that 1-2-1-2 instead of 1-2-3-4?
jnthn: I knew that, I mean, why is the exception not caught by the quit "handler"? 16:07
jnthn japhb: Well, why is it not caught by the CATCH at Supply.pm:130 is what I'm wondering.
Can you see what's in $! after the try? 16:08
It's 1-2-1-2 'cus state is per closure and BEGIN operates on the static code object, while foo is closure-cloned on entry to the scope. 16:09
(the cope being the program mainline)
*scope
japhb j: my $s := Supply.new; $s.tap({ .say }); my $t := on -> $out { $s => { more => sub ($val) { die "oops" }, quit => sub ($error) { say "Caught in on-quit: $error" } } }; $t.tap({ say "More in final tap" }, quit => { say "Quit in final tap" }); start { try $s.more("checking ..."); say "Caught error: $!" if $!; say "Alive in second thread" }; say "Alive in first thread"; sleep 1; say "sleeping again"; sleep 5
camelia rakudo-jvm aa8810: OUTPUT«Alive in first thread␤checking ...␤Quit in final tap␤Caught error: oops␤Alive in second thread␤sleeping again␤»
jnthn If it wasn't that way then sub counter() { return { ++( state $ ) } } wouldn't work. 16:10
japhb: ooooh...it doesn't work 'cus I fail it
japhb: Try applying gist.github.com/jnthn/8523025 16:11
masak japhb: 1-2-1-2 has the same cause as my latest blog post.
jnthn Yeah! It's 1-2-1-2 'cus of masak! 16:12
japhb jnthn: OK, that will take me a bit, but thank you.
masak: link?
masak strangelyconsistent.org/blog/lexpad...eed-fixups
japhb: it's a minor point in that post, but it's there.
16:14 grondilu joined
grondilu r: gist.github.com/grondilu/8523064 16:14
camelia rakudo-moar aa8810: OUTPUT«2 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15␤»
..rakudo-parrot aa8810, rakudo-jvm aa8810: OUTPUT«2 15 825 725 1925 2275 425 390 330 290 770 910 170 156 132 116 308 364 68 4␤»
grondilu ^ see rosettacode.org/wiki/Fractran 16:15
japhb masak: Why doesn't calling a sub at BEGIN time trigger the fixup? Because it's runtime from the point of view of foo().
16:21 [Sno] left
japhb
.oO( Apparently I ask the hard questions ... )
16:26
jnthn: patch applied; building a new r-j 16:27
jnthn: Yep, that fixes it locally. 16:29
16:35 atroxaper left
dalek p: 8157139 | (Tobias Leich)++ | / (2 files):
do not increment position for zerowidths
16:37
16:37 zakharyas left
dalek kudo/nom: 0e11f5f | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp rev to get unicode fixes

both S05-mass/properties-block.t and S05-mass/properties-script.t pass now
16:39
16:40 jeffreykegler joined, FROGGS[mobile] joined, FROGGS left
grondilu r: say .[^2] given 2, -> \n { first Int, map (* *n).narrow, <3/2>; } ... *; 16:40
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«2 3␤»
grondilu r: say .[^2] given 2, -> \n { first Int, map (* *n).narrow, <3/2>; } ... Nil;
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«2␤»
grondilu r: say 1, 2 ... Nil 16:41
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«1␤»
grondilu :/ 16:42
diakopter FROGGS[mobile]++ FROGGS++ # nice job!
grondilu r: say 1, { rand < .1 ?? Nil !! '#' } ... { $_ ~~ Nil } 16:44
Can't I use Nil as a criterium for ending a sequence? 16:45
r: say so Nil
colomon Nil is always false, isn't it?
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«(timeout)»
rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«False␤»
grondilu r: say Int, Rat, Num, Bool ... Num 16:46
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«(Int) (Rat) (Num)␤» 16:47
16:47 woolfy left
grondilu r: say Int, Rat, Num, Nil, Bool, ... Nil 16:47
camelia rakudo-moar aa8810: OUTPUT«===SORRY!=== Error while compiling /tmp/GrmLvid7f4␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...)␤at /tmp/GrmLvid7f4:1␤------> say Int,…»
..rakudo-jvm aa8810: OUTPUT«===SORRY!=== Error while compiling /tmp/2GeP5yVEuh␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...)␤at /tmp/2GeP5yVEuh:1␤------> say Int, …»
..rakudo-parrot aa8810: OUTPUT«===SORRY!=== Error while compiling /tmp/3sc_shjIbj␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...)␤at /tmp/3sc_shjIbj:1␤------> say In…»
grondilu r: say Int, Rat, Num, Nil, Bool ... Nil
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«(Int)␤» 16:48
grondilu colomon: it's always False but not when it's supposed to smartmatch, is it?
n: say Int, Rat, Num, Nil, Bool ... Nil
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Need something on the RHS␤ at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3484 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3489 (series-listop @ 18…»
colomon r: say Nil ~~ Nil
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«True␤»
colomon hmmm, guess not 16:49
p: my @a := 1, { rand < .1 ?? Nil !! '#' } ... { $_ ~~ Nil }; say @a[^10]
16:49 woolfy joined
camelia rakudo-parrot aa8810: OUTPUT«1 # # # # # # # # #␤» 16:49
colomon p: my @a := 1, { rand < .1 ?? Nil !! '#' } ... { $_ ~~ Nil }; say @a[^30]
camelia rakudo-parrot aa8810: OUTPUT«1 # # # # # # # # # # # # # # # # # # # # # # # # # # # # #␤»
colomon your problem may be that the Nils are actually disappearing 16:50
grondilu oh
colomon probably depends on how infix:<…> is implemented
grondilu r: say my @ = 1, Nil, Nil, 2
camelia rakudo-jvm aa8810: OUTPUT«(timeout)»
..rakudo-parrot aa8810, rakudo-moar aa8810: OUTPUT«1 2␤»
grondilu r: say .perl given my @ = 1, Nil, Nil, 2 16:51
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«Array.new(1, 2)␤»
grondilu I see. Nil is ignored in lists. Good to know.
colomon the iterating code block can return any number of values, right? so would returning Nil be the same as returning no value?
BenGoldberg Nil is a bit like () in perl5
grondilu how could I stop a sequence when it reaches Nil, then? 16:52
16:52 psch joined
BenGoldberg I don't think that you can detect a Nil in list context 16:52
BenGoldberg could be wrong, of course.
psch hi #perl6
BenGoldberg Hello 16:53
colomon grondilu: if BenGoldberg and I are thinking correctly, you can't
because it cannot ever "reach a Nil"
benabik Nil isn't a value so much as a lack of one. 16:54
16:54 denis_boyun left
BenGoldberg If you had perl5 code: my @a = map { rand < .5 ? () : $_ } 0..100; how would you detect the () values? 16:54
grondilu r: say 1, { rand < .5 ?? Mu !! '#' } ... Mu 16:55
camelia rakudo-moar aa8810: OUTPUT«Nominal type check failed for parameter '<anon>'; expected Any but got Mu␤ in sub infix:<===> at src/gen/m-CORE.setting:1739␤ in sub SEQUENCE at src/gen/m-CORE.setting:16095␤ in sub infix:<...> at src/gen/m-CORE.setting:16218␤ in sub infix:<...…»
..rakudo-jvm aa8810: OUTPUT«Nominal type check failed for parameter 'null'␤ in sub infix:<===> at gen/jvm/CORE.setting:1739␤ in sub SEQUENCE at gen/jvm/CORE.setting:16098␤ in sub infix:<...> at gen/jvm/CORE.setting:16221␤ in sub infix:<...> at gen/jvm/CORE.setting:16220␤…»
..rakudo-parrot aa8810: OUTPUT«Nominal type check failed for parameter ''; expected Any but got Mu instead␤ in sub infix:<===> at gen/parrot/CORE.setting:1743␤ in sub SEQUENCE at gen/parrot/CORE.setting:16365␤ in sub infix:<...> at gen/parrot/CORE.setting:16488␤ in sub inf…»
grondilu r: say 1, { rand < .5 ?? Num !! '#' } ... Num
camelia rakudo-parrot aa8810, rakudo-jvm aa8810, rakudo-moar aa8810: OUTPUT«1 (Num)␤»
BenGoldberg p: my @a := 1, { rand < .1 ?? Mu !! '#' } ... { $_ ~~ Mu }; say @a[^30]
camelia rakudo-parrot aa8810: OUTPUT«1␤» 16:56
BenGoldberg p: my @a := 1, { rand < .01 ?? Mu !! '#' } ... { $_ ~~ Mu }; say @a[^30]
camelia rakudo-parrot aa8810: OUTPUT«1␤»
BenGoldberg p: my @a := 1, { rand < .01 ?? '@' !! '#' } ... { $_ eq '@' }; say @a[^30]
camelia rakudo-parrot aa8810: OUTPUT«1 # # # # # # # # # # # # # # # # # # # # # # # # # # # # #␤»
BenGoldberg p: my $sentinel; my @a := 1, { rand < .01 ?? $sentinel !! '#' } ... { $_ === $sentinel }; say @a[^30] 16:57
camelia rakudo-parrot aa8810: OUTPUT«1 # # # # # # # (Any)␤»
16:57 Reub joined
Reub Hey 16:57
grondilu ok, got it:
r: say .[^10] given 2, -> \n { Num R[//] first Int, map (* *n).narrow, <3/2>; } ... Num
camelia rakudo-parrot aa8810, rakudo-jvm aa8810: OUTPUT«2 3 (Num)␤»
..rakudo-moar aa8810: OUTPUT«2 3 3 3 3 3 3 3 3 3␤»
grondilu or maybe clearer: 16:58
r: say .[^10] given 2, -> \n { 'STOP' R[//] first Int, map (* *n).narrow, <3/2>; } ... 'STOP'
camelia rakudo-parrot aa8810, rakudo-jvm aa8810: OUTPUT«2 3 STOP␤»
..rakudo-moar aa8810: OUTPUT«2 3 3 3 3 3 3 3 3 3␤»
grondilu not pretty, but it works
I whish I could use Mu here, instead of 'STOP' 16:59
BenGoldberg Odd that moar gets it wrong
n: say .[^10] given 2, -> \n { 'STOP' R[//] first Int, map (* *n).narrow, <3/2>; } ... 'STOP'
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤This macro cannot be used as a function at /tmp/PdBqzEk4uB line 1:␤------> say .[^10] given 2, -> \n { 'STOP' R[//]⏏ first Int, map (* *n).narrow, <3/2>; } ␤␤Unhandled exception: Check fai…»
BenGoldberg Huh 17:00
Reub i know this is the wrong place, but im currently researching server side languages for Apache. Could anyone spare a couple minutes?
colomon BenGoldberg: that's the R[//] causing trouble, I think
(in niecza) 17:01
grondilu doubt it
oh in niecza, then ye
s
BenGoldberg Reub, You mean like mod_parrot and mod_perl6?
grondilu r: say .[^10] given 2, -> \n { ~first Int, map (* *n).narrow, <3/2>; } ... '' 17:06
camelia rakudo-moar aa8810: OUTPUT«2 3 3 3 3 3 3 3 3 3␤»
..rakudo-parrot aa8810, rakudo-jvm aa8810: OUTPUT«2 3 ␤»
BenGoldberg m: say (2 * <3/2).narrow.perl 17:08
camelia rakudo-moar aa8810: OUTPUT«===SORRY!=== Error while compiling /tmp/zIieHbRcO2␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/zIieHbRcO2:1␤------> say (2 * <3/2).narrow.perl⏏<EOL>␤ expecting any …»
BenGoldberg m: say (2 * <3/2>).narrow.perl
camelia rakudo-moar aa8810: OUTPUT«3␤»
BenGoldberg m: say Int ~~ (2 * <3/2>).narrow.perl
camelia rakudo-moar aa8810: OUTPUT«use of uninitialized value of type Int in string context␤False␤»
BenGoldberg m: say Int ~~ (2 * <3/2>).narrow
camelia rakudo-moar aa8810: OUTPUT«Invocant requires an instance, but a type object was passed␤ in method Bridge at src/gen/m-CORE.setting:4284␤ in sub infix:<==> at src/gen/m-CORE.setting:4201␤ in sub infix:<==> at src/gen/m-CORE.setting:4041␤ in method ACCEPTS at src/gen/m-COR…»
17:10 Reub left 17:11 kaleem joined
grondilu m: (2 * <3/2>).narrow ~~ Int 17:12
camelia ( no output )
grondilu m: say (2 * <3/2>).narrow ~~ Int
camelia rakudo-moar aa8810: OUTPUT«True␤»
moritz m: say (2 * <3/2>).narrow.^name
camelia rakudo-moar aa8810: OUTPUT«Int␤»
17:13 rjbs left, rjbs joined
grondilu m: say grep Int, (1/3, 2/3 ... 10/3) 17:14
camelia rakudo-moar aa8810: OUTPUT«␤»
grondilu p: say grep Int, (1/3, 2/3 ... 10/3)
camelia rakudo-parrot aa8810: OUTPUT«␤»
grondilu p: say grep Int, (1/3, 2/3 ... 10/3)».narrow
camelia rakudo-parrot aa8810: OUTPUT«1 2 3␤»
grondilu m: say grep Int, (1/3, 2/3 ... 10/3)».narrow
camelia rakudo-moar aa8810: OUTPUT«1 2 3␤»
grondilu r: say first Int, (1/3, 2/3 ... 10/3)».narrow
17:14 fhelmberger left
camelia rakudo-jvm aa8810: OUTPUT«(timeout)» 17:15
..rakudo-parrot aa8810, rakudo-moar aa8810: OUTPUT«1␤»
17:15 SamuraiJack joined 17:21 Biohazard left 17:22 rindolf left
timotimo japhb: it does? it does! >_< 17:23
17:23 denis_boyun joined
dalek p: baf106c | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java:
this debug output does not belong here.
17:24
kudo/nom: 619a35d | (Timo Paulssen)++ | src/vm/jvm/core/IOAsyncFile.pm:
kill more debug output
17:26 kaleem left 17:28 atta joined, Biohazard joined
japhb timotimo: heh. 17:28
17:33 [Sno] joined
dalek kudo/nom: 7e829df | (Geoffrey Broadwell)++ | src/vm/jvm/core/Supply.pm:
Pushing patch by jnthn++ to fix error handling in on()
17:35
kudo/nom: 972ac86 | (Geoffrey Broadwell)++ | / (2 files):
Merge branch 'nom' of github.com/rakudo/rakudo into nom
japhb jnthn: I pushed the patch so it wouldn't be lost.
Gah, I hate accidental merge commits.
timotimo colomon, grondilu: Nil isn't supposed to disappear in list context any more, we now have () to fill that role, but it's NYI :(
17:36 SamuraiJack left
jnthn japhb: ah, thanks...I was gonna get to it after $dayjob tasks, but now I just need to write a test. :) 17:36
japhb: Or you could always do that also ;)
japhb jnthn: May or may not get a chance -- herding cats today. :-) 17:37
grondilu timotimo: ok, good to know.
(the code for fractran will be much more elegant when Nil won't disappear in list context) 17:38
17:38 djanatyn left, ajr_ left
grondilu s/won't/doesn't/ 17:39
17:39 djanatyn joined, ajr joined
timotimo grondilu: unfortunately, that may take a while; people are waiting for the list synopsis overhaul before trying to fix that 17:40
17:40 ajr is now known as Guest27602, Guest27602 is now known as ajr_
timotimo r: say (28479 * 0.99) - 28079 17:41
grondilu no problem, there's no rush
camelia rakudo-jvm aa8810: OUTPUT«(timeout)»
..rakudo-parrot aa8810, rakudo-moar aa8810: OUTPUT«115.21␤»
japhb Does anyone object to me fixing the default socket.recv size (and changing the default to 64K to contain a max-size IP datagram)? 17:42
timotimo that's how many tests are to go before moar reachen 99% of jvm
japhb: that would be good
and froggs said the latest unicode fix would give us about 50
japhb Excellent. 17:43
TimToady japhb: does it trim it back down to the actual size after? Or does that waste 64k per datagram? 17:44
timotimo i don't think it will
er, i mean, i don't think it will waste the space
AFK
japhb TimToady: I'm looking at the nqp source now 17:45
17:46 FROGGS[mobile] left
TimToady seems like, if you have sole control of a nursery, you could say "reserve me this much, but be ready to reclaim some of it because I'll know almost immediately how much I really want" 17:49
alternately, you could split an allocation in gen2
17:50 atta left
TimToady or maybe you just don't worry about it because of nursery copying 17:51
that seems likeliest to me, so nevermind :)
japhb TimToady: In the JVM implementation, it reads into a full-length buffer, then copies into a correctly-sized byte array, and lets the full-length buffer go out of scope.
TimToady just thinking about ways to save a copy on IO 17:52
especially if we're also going to do NFG processing anyway, and toss the buffer 17:53
jnthn We could do with APIs that push the NFG stuff off into async land too, if you're already doing async... 17:54
japhb Yeah, I think we'll need to do a lot of optimization of the IO pathways at some point soon. I'm having to do some less-than-ideal things for a server (like breaking proper log rotation) in order to get decent performance.
Still, I'm looking at it as "(optimization) target-rich environment". :-) 17:55
TimToady on the NFG grapheme wraparound issue, we have to handle that anyway for any kind of concatenation 17:56
so a Cat string might need to do a lookahead to be correct
I don't think a Cat needs to be strictly lazy 17:57
and reading from a text filehandle is essentially Cat semantics 17:58
might need to make exceptions for newlines and such
17:58 dakkar left 17:59 jnap joined, jnap left
bibifuc_ thinks Cats are lazy pets 17:59
TimToady we might usefully assume that nobody is going to put a combiner after a newline
18:00 jnap joined 18:01 atta joined
japhb TimToady: TBH, I'm hoping that newlines act as sequence points of a sort within any reasonable text input. Because if that's not a sequence point we can count on, I'm not sure what is. :-/ 18:01
TimToady p: say "\xa\x308";
camelia rakudo-parrot 0e11f5: OUTPUT«␤̈␤»
TimToady heh
japhb Wat 18:02
TimToady as far as I know, it's legal in Unicode, which is why I said "assume" :)
japhb DIHWIDT?
TimToady Doctor, why are you pointing that gun at me? 18:03
A: I took the hypocritic oath. 18:04
japhb breakfast & 18:05
timotimo we need to make sure, though, that crafted input can't kill every single program written in perl6 ever 18:06
TimToady presumably the worst would be that, assuming newline is autochomped, you'd end up with a string with a combiner on the front, which if concatenated to something else would misplace the mark 18:08
I don't see how that would kill the program
timotimo who knows! :)
TimToady we should find someone paranoid to write the tests 18:09
diakopter or a test generator 18:10
18:10 jnap left
timotimo fuzz the crap outta that :3 18:11
TimToady someone paranoid should write the fuzzer :) 18:12
lue How come I've never heard of this Cat type?
18:12 zby_home_ joined 18:13 ajr_ left
jnthn Those who spent a few moments pondering how it might interact with the regex engine fear to speak of it :P 18:13
diakopter in a non-angelic language anyway
TimToady well, it's only mentioned in four spec files 18:14
timotimo TimToady: are we going to get a spec for streaming matches? :3 18:16
TimToady Oddly, it's not mentioned in S15... :) 18:17
timotimo: well, that's kinda what Cat is supposed to be for...
timotimo mhm
jnthn Cat is one of the things I really, really want to be a 6.1 thing.
lue Well, from what I can tell it's an array that acts kinda like hash keys, rather than a type of string...
timotimo what does the result of such a match look like? 18:18
i would like semantics like the reifying of a list with an iterator
if the match hits eos and the user didn't set the "eos is actually the eos" bit, it would bop out using continuations
and the object would perhaps contain info on where exactly the matching currently is and access to the partial match object tree 18:19
18:19 FROGGS joined
TimToady that's what a Cat with a plan is supposed to allow, lazy string generation, as long as you don't ask for the length of the string 18:19
lue: has nothing to do with hash keys 18:21
lue TimToady: I know, it just reminds me of the auto-stringing that happens by default in things like A => 1
TimToady has nothing to do with that either, that I can see...
timotimo "a cat with a plan" %) 18:22
lue "... a Cat object. In string context this coerces each of its elements to strings lazily, ..." from S03
timotimo commit and cut are not implemented, aye?
TimToady your typical Cat will consist of pre-existing strings in a lazy array 18:23
lue (I was trying to think of something else in Perl 6 that did the "coerce all its elements" thing, and string hash keys came to mind)
TimToady timotimo: cut is not, but I think commit is, at least on niecza 18:24
lue TimToady: could Cat become a role, allowing for example Cat[Uni], Cat[NFD], etc. ? 18:25
18:27 darutoko left
timotimo do we have a mechanism on moar to allow for the beginning of a string to be cut off and garbage collected somehow? 18:28
i suppose one could move the begin pointer and on the next nursery copy discard the rest?
not so sure about gen2 space
TimToady timotimo: if it's in an array, you can shift it
that's one of the nice things about Cat
timotimo good point 18:29
AFK
jnthn Any time you propose a language solution that involves monkeying with the GC, you're doing it wrong. 18:30
For one 'cus we can't go fiddling with the JVM's one... 18:31
For two 'cus special cases in GCs are really not desirable.
japhb "This is perl6 version 2013.12-330-g972ac86 built on MoarVM version 2013.10-401-gf959b0a" Hee-hee, I just can't get over how nice that is to see. :-) 18:33
colomon +1 18:35
TimToady jnthn: you'll note I nevermindeded that :)
jnthn TimToady: Yes, I was thinking of the timotimo++ suggestion as much as your neverminded one :) 18:36
btyler japhb: that message is precisely why I spent a few hours mucking with linker flags on osx :) 18:37
saw it in my linux vm, which was just tantalizing enough to want to make it work
18:38 ajr joined
xfix I'm trying to solve codegolf.stackexchange.com/question...repetition 18:38
I'm currently on say(<H>~q:b{eL\x6CO woRld!}.lc)
The problem is that "l" is used twice...
18:38 ajr is now known as Guest57902, Guest57902 is now known as ajr_
xfix Any suggestions to remove identical characters from code somehow? 18:39
18:39 Pleiades` left
xfix I cannot use double quotes or qq. q:c duplicates with lc. 18:39
jnthn xfix: Can you come up with two strings that have no dupes and string bitwise to hello world? :) 18:40
xfix qb:c could work...
(why I didn't think of it)
jnthn, ASCII only, but interesting idea.
(I think it even could work with ASCII only)
grondilu can't you get rid of the parenthesis? 18:41
r: say <H>~q:b{eL\x6CO woRld!}.lc
oh no, two spaces
xfix Now I have space inside "eL\x6CO woRld!"
camelia rakudo-jvm 0e11f5: OUTPUT«(timeout)»
..rakudo-parrot 0e11f5, rakudo-moar 0e11f5: OUTPUT«Hello world!␤»
moritz .say
gets you rid of the space after say 18:42
oh, but then you need parens for grouping
xfix This is an interesting puzzle, to be honest.
I'm close, but not quite.
grondilu kind of insane though
18:42 kivutar left
xfix People make solutions in Befunge, because nothing else works, lol. 18:42
grondilu r: say(<H>~q:b{eL\x6CO woR1d!}.lc) # almost :-) 18:43
camelia rakudo-parrot 0e11f5, rakudo-jvm 0e11f5, rakudo-moar 0e11f5: OUTPUT«Hello wor1d!␤»
xfix heh, no
18:44 Pleiades` joined
lue r: say(<H>~q:b{eL\x6CO woR1d!}.tc) 18:44
camelia rakudo-parrot 0e11f5, rakudo-jvm 0e11f5, rakudo-moar 0e11f5: OUTPUT«HELlO woR1d!␤»
lue r: say(<H>~q:b{eL\x6CO woRld!}.tc)
camelia rakudo-parrot 0e11f5, rakudo-jvm 0e11f5, rakudo-moar 0e11f5: OUTPUT«HELlO woRld!␤» 18:45
xfix I would need tclc.
Except this requires two "c".
Besides, I don't think that <H>~ is an issue, unless it uses any of needed characters (but I doubt that) 18:46
(in <> blocks you cannot use backslashes, so it's almost useless) 18:47
<<>> would work, but ASCII only.
FROGGS it is ascii, no? 18:48
r: say '»'.ord
camelia rakudo-parrot 0e11f5, rakudo-jvm 0e11f5, rakudo-moar 0e11f5: OUTPUT«187␤»
FROGGS ohh
:/
xfix Yes, but duplicates. And 􏿽xAB􏿽xBB is not ASCII.
I know, I'm trying to do completely crazy stuff in Perl 6, but this is fun.
18:49 jnap joined
colomon hmmm, ABC compile broken in JVM. (works in rakudo.) 18:49
FROGGS it is yes :o)
18:49 jnap left, jnap joined
grondilu
.oO( say first { try { EVAL $_ } eq 'Hello world!' }, @lazy-list-of-all-asciistring-with-no-char-repetition )
18:50
xfix say(<H>~qb:c[eL\x6CO woR{chr 108}d!].lc)
Here I have issue with a space. 18:51
grondilu 108.chr
?
oh no, .
xfix Then again, if I replace second space with tab...
Somewhat of rule abuse, but...
Util p: my $a = (1,2,3,2,2,2,2).BagHash; say $a.perl;
camelia rakudo-parrot 972ac8: OUTPUT«(1=>1,2=>5,3=>1).BagHash␤»
lue xfix: how is that rule abuse? Different characters after all. :)
xfix :) 18:52
18:52 Rotwang joined
timotimo jnthn: i wasn't thinking of adding a feature to the gc that does it, merely of a way of implementing it so that it happens automatically 18:52
grondilu the second space with tab is fine.
xfix Argh, chr has "c".
grondilu no rule abuse indeed.
Util p: my $a = (1,2,3,2,2,2,2).BagHash; say [$a.kv].perl; 18:53
xfix And there is ":c".
camelia rakudo-parrot 972ac8: OUTPUT«[1, 1, 2, 5, 3, 1]␤»
18:53 spider-mario joined
xfix :s, perhaps. 18:53
Except $() requires parens which cost. 18:54
Time to use a new line?
Except "chr" and "lc" cannot coexist. 18:55
'say'\n'<H>~qb:s[eL\x6CO woR$(chr'\t'108)d!].lc'
Not quite, but close.
Any way to possibly avoid chr here? 18:56
FROGGS \c108... but.. the c and the backslash again
xfix Backslash is an issue. 18:57
I have just one.
FROGGS r: printf "%L2s", o 18:58
xfix (then again, I like how I use space, new line, and tab)
grondilu is extended ASCII allowed?
FROGGS r: printf "%L2s", "o"
xfix grondilu, no
camelia rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/Kjz19lk84y␤Undeclared routine:␤ o used at line 1␤␤»
..rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/3AxzjhhQaK␤Undeclared routine:␤ o used at line 1␤␤»
grondilu so 0..128?
camelia ..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/P5y6jXVVSm␤Undeclared routine:␤ o used at line 1␤␤»
rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«'L2s' is not valid in sprintf format sequence '%L2s'␤␤»
xfix printf...
grondilu r: say "there are only {[*] 2..127} possibilities" 18:59
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«there are only 30126600184576595448099770775270596923241649186736217990533469005966672076184808090678606920977137619846097799457727839655638510333007723262977730878518699825002706617912441225976217600000000000000000…»
xfix Or pred, perhaps...
timotimo iterate through all possibilities and find the one that matches some checksum? :P 19:00
lue grondilu: I don't think that number takes into account strings with less than all ASCII characters. :)
timotimo that's fantastic
grondilu or maybe a genetic algorithm. You'd start from 'say "Hello word!"' and you make it evalove.
*evolve 19:01
timotimo :D
xfix r: say <H>~lc qb:s{eL\x6CO woR$(Q[m].pred)d!}
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«Hello world!␤»
19:01 raiph joined
timotimo wow, <H>~lc looks funny 19:01
jnthn Repeats e
And d
Ayiko and space?
timotimo twice is allowed
(i thought?) 19:02
jnthn Oh...
I thought not
grondilu you guys realize there might be no solution at all, right?
FROGGS grondilu: gah!
Ayiko that would be unfortunate
timotimo wow
"should not use any character more than once (including whitespace)"
BenGoldberg Both strings have to be ascii, due to the rules; if you xor two ascii strings, the results will definitely not be ascii :P However, if you or two ascii strings, the result will be ascii
FROGGS try that in PHP, lol! 19:03
xfix Argh, say.
And :s don't like themselves
FROGGS xfix: we can fix rakudo if we need to :o)
xfix say <H>~lc qb:s{eL\x6CO woR$(Q[m].pred)d!}
grondilu thinks it's not healthy to try too hard to solve a problem when we're not even sure a solution exists.
xfix FROGGS, no, thanks.
colomon wonders if adding a few moreoperators to p6 might help. ;) 19:05
lue r: say "You can do it, there are {[+] ([*] $_..127 for ^128)} possible strings."
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«You can do it, there are 8189258983498547755301136726331018182795341082989472417800294638981943850974416517674504393522298820068493412557445147820427301212765815466137359501584796845232882984212354973723008236769314…»
xfix I also tried :a, but "say" also contains "a"...
grondilu lue: I'm not sure about your counting
xfix say <H>~lc qb:a{EL\x6CO woR@(Q[m].pred)[]D!} 19:06
lue r: say [+] ([*] $_..3 for ^4)
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«15␤»
xfix I'm so close, yet so far.
lue That's the right number for three characters to play with.
grondilu is confused 19:07
lue I confirmed one data point, therefore the formula is right :P
r: say <A B C AB AC BA BC CA CB ABC ACB BAC BCA CAB CBA>.elems 19:08
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«15␤»
grondilu oh
grondilu got it
xfix :h is not fine, because hashes have to have pairs.
lue r: say ([+] ([*] $_..$OUTER::_ for ^($_+1))) for ^10; # probably some superstitious parens here, but * 19:10
camelia rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«use of uninitialized value of type Nil in numeric context␤0␤use of uninitialized value of type Nil in numeric context␤use of uninitialized value of type Nil in numeric context␤1␤use of uninitialized value of type Nil in numeric…»
..rakudo-parrot 972ac8: OUTPUT«0␤1␤4␤15␤64␤325␤1956␤13699␤109600␤986409␤»
19:12 molaf joined
TimToady is not sure that should work without brackets 19:13
timotimo xfix++ # carrying perl6 to its syntactical limits
FROGGS xfix: say <H>~lc qb:s{EL\x6CO woR$(Q[m].pred)D!} # you need a newline at the end right?
xfix FROGGS, yes 19:14
(not that "print" would help me)
lue Number of possible strings for n characters is A007526(n) oeis.org/A007526
19:15 berekuk joined
TimToady a statement in parens is not really supposed to introduce a new lexical scope 19:15
19:16 LLamaRider joined
TimToady so OUTER should be bogus there 19:16
Ayiko FixedPMCArray: Can't resize! <- that's a fancy way of saying out of memory?
lue TimToady: it's the for loops I believe
japhb r: my $try = 'say <H>~lc qb:s{EL\x6CO woR$(Q[m].pred)D!}'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep: *.value > 1;
benabik Ayiko: That's a fancy way to say that the array is being used wrong.
camelia rakudo-parrot 972ac8, rakudo-moar 972ac8: OUTPUT«"s" => 2␤" " => 3␤»
..rakudo-jvm 972ac8: OUTPUT«" " => 3␤"s" => 2␤»
TimToady the for loops should be temporizing $_ rather than making a new scope
grondilu two s
jnthn TimToady: At this point we make no real attempt to distinguish significant scopes...
japhb r: my $try = 'say <H>~lc qb:s{EL\x6CO woR$(Q[m].pred)D!}'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value); 19:17
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«" " => 3␤"s" => 2␤»
lue TimToady: How would I access both $_ in that case? $CALLER::_ ? $SOMEOTHERSCOPETHATSNOTCOMINGTOMIND::_ ?
jnthn TimToady: Since for is actually map, the thing is thunked
grondilu ok, who wants to bet there is no actuall solution?
jnthn TimToady: You'll see the same happen with the thunking xx does.
TimToady but a thunk is supposed to parisitize it's scope 19:18
jnthn TimToady: I guess we will need to distinguish VM view vs OUTER/CALLER view at some point.
19:18 jnap left
TimToady not generate a new scope 19:18
19:18 jnap joined, jeffreykegler left
TimToady I don't know how many people I've promised over the years that P6's scoping rules were much simpler than P5's... 19:18
this breaks that promise... 19:19
jnthn You're confusing the compiler's view with the runtime view.
TimToady OUTER should not work there
jnthn A thunk is obviously a different thingy from the runtime's perspctive
TimToady OUTER has nothing to do with runtime
jnthn At the moment it decidedly does. 19:20
TimToady (in the definitional sense)
19:20 jnap left
jnthn Right, but at the moment OUTER is simply done in terms of "whatever call frames the underlying VM is aware of" 19:20
Which won't hold up in the long run.
But is a decent approximation most of the time. 19:21
I agree with thunks it's a bad one.
lue likes using $OUTER::_ though...
jnthn And that this should be invisible to OUTER here.
TimToady if you want an outer, there's the brace form of nesting for modifiers 19:22
19:22 jnap joined
TimToady but in general, by the time you start nesting loops, you should really be putting the loops as normal statements 19:23
or using real maps
jnthn OK, enough $dayjob...time for dinner, then some Perl 6 stuff... 19:24
colomon \o/
19:26 pecastro left
colomon is kind of awed at all the progress rakudo has made so far this year. 19:27
xfix 18<japhb> r: my $try = 'say <H>~lc qb:s{EL\x6CO woR$(Q[m].pred)D!}'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep: *.value > 1; 19:31
thanks
(also, back)
I already made a script to do so in Perl 5, but thanks. The spaces are fine, as I replace them in final script with tab and newline.
r: say <H>~lc qb:s{EL\x6CO woR$(Q[m].pred)D!} 19:32
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«Hello world!␤»
xfix The problem is say and :s.
:a won't work too.
(because of say) 19:33
:c won't work because of lc.
As for other adverbs, they seem useless in this case.
:qq would be great, but it's... double! 19:36
hugme hugs xfix, good vi(m) user!
xfix lolvim
(I don't even use vim)
r: my $try = ''print <H>~lc Qb:c[EL\x6CO woR{Q[m].pred}D!]'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value); 19:38
camelia rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/16AgqXaJ8m␤Two terms in a row␤at /tmp/16AgqXaJ8m:1␤------> my $try = ''⏏print <H>~lc Qb:c[EL\x6CO woR{Q[m].pred}␤ expecting any of:␤ postfix␤ infix …»
..rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/8mjPwJe8iX␤Two terms in a row␤at /tmp/8mjPwJe8iX:1␤------> my $try = ''⏏print <H>~lc Qb:c[EL\x6CO woR{Q[m].pred}␤ expecting any of:␤ postfix␤ infix s…»
..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/Dujughpqbi␤Two terms in a row␤at /tmp/Dujughpqbi:1␤------> my $try = ''⏏print <H>~lc Qb:c[EL\x6CO woR{Q[m].pred}␤ expecting any of:␤ postfix␤ infi…»
xfix r: my $try = 'print <H>~lc Qb:c[EL\x6CO woR{Q[m].pred}D!]'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value);
camelia rakudo-jvm 972ac8: OUTPUT«" " => 3␤"Q" => 2␤"[" => 2␤"]" => 2␤"c" => 2␤"r" => 2␤"p" => 2␤»
..rakudo-parrot 972ac8, rakudo-moar 972ac8: OUTPUT«" " => 3␤"p" => 2␤"r" => 2␤"c" => 2␤"Q" => 2␤"[" => 2␤"]" => 2␤»
xfix pred annoys with print. 19:39
And succ has two 'c'.
But what about printf... 19:40
.u l 19:41
yoleaux U+006C LATIN SMALL LETTER L [Ll] (l)
xfix lc, and %c... I cannot use %c then 19:42
This is almost useless then.
19:44 LLamaRider left, Mouq joined
xfix %C works. Great. 19:44
(this may be a bug, but whatever) 19:45
TimToady wonders if it helps that EVAL is now spelled uppercase...
xfix r: my $try = 'printf <H>~qb[EL\c108O woR%CD!].lc,222'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value); 19:46
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«"2" => 3␤" " => 2␤"c" => 2␤»
xfix (just to check if I'm on right track)
sorta 19:47
.u L
yoleaux U+004C LATIN CAPITAL LETTER L [Lu] (L)
xfix r: my $try = 'printf <H>~qb[EL\x4CO woR%CD!].lc,108'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value); 19:48
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«" " => 2␤"C" => 2␤»
xfix asdf
moritz jklö 19:50
xfix Something like \l from Perl 5 would be nice... 19:51
19:52 sojuzupak joined
TimToady that's spelled {lc ...} in Perl 6 19:54
psch what about \o instead of \x
oh nvm
there's an o of course
although, maybe you can still shuffle it around, do the second l with \o, do the o with \x
grondilu xfix: check this out: gist.github.com/grondilu/8527805 19:55
inspired from rosettacode.org/wiki/Evolutionary_a...thm#Perl_6
19:55 leninist joined
Ayiko psch: 2 times backslash :) 19:55
xfix r: my $try = 'printf Q{H}~qb[EL\o154O woR%CD!].lc,:29<3l>'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value);
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«" " => 2␤"o" => 2␤"l" => 2␤»
psch Ayiko: right... i knew why i kept quiet all the time up to now :) 19:56
xfix Different base is needed, but close.
I'm out of bases...
19:56 berekuk left 20:00 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_
xfix But what if I do math... 20:00
Nope, not an option
\o, \x, \c require characters I need.
(well, \x needs for number itself)
20:00 preflex_ is now known as preflex
xfix 0x4C or 0x6C. 20:01
20:01 berekuk joined
TimToady .chrs can make multiple characters 20:01
psch r: say \x$(4B+1)
camelia rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/H2AGF6JgvC␤Two terms in a row␤at /tmp/H2AGF6JgvC:1␤------> say \x⏏$(4B+1)␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
..rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/s6MGTdDvEk␤Two terms in a row␤at /tmp/s6MGTdDvEk:1␤------> say \x⏏$(4B+1)␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/AHMmj5TrW3␤Two terms in a row␤at /tmp/AHMmj5TrW3:1␤------> say \x⏏$(4B+1)␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
xfix .u l 20:02
yoleaux U+006C LATIN SMALL LETTER L [Ll] (l)
xfix .r say 0x6C
FROGGS p: say 0x6C
camelia rakudo-parrot 972ac8: OUTPUT«108␤» 20:03
xfix .u o
yoleaux U+006F LATIN SMALL LETTER O [Ll] (o)
xfix .r say 0x6F
FROGGS p: say 0x6F
camelia rakudo-parrot 972ac8: OUTPUT«111␤»
FROGGS :o)
xfix I fail
FROGGS take a break?
xfix r: say 111
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«111␤»
xfix <TimToady> .chrs can make multiple characters 20:04
I'm experimenting
r: say qc[He{chrs <0x6C 108>,111} world!] 20:05
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«Hello world!␤»
xfix Something like this could work, if I would deal with 111 somehow.
(or 0x6C)
moritz r: say 111.base(8)
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«157␤»
FROGGS good thinking
moritz r: say 111.base(7)
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«216␤»
moritz :7(216) 20:06
xfix r: say 111.base(21)
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«56␤»
xfix r: say 111.base(23)
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«4J␤»
moritz :23<4J>
FROGGS chrs + print|say does not mix very well
moritz and use «...» for the quotes
FROGGS only ascii
xfix Oh, right.
moritz dammit 20:07
xfix chrs has "s".
I haven't noticed.
FROGGS and r
xfix "r" is an in issue in my current code.
Oh wait, it is.
moritz did you discard the string xor approach? 20:08
xfix I didn't. 20:09
Perhaps this could work
.u h
yoleaux U+0068 LATIN SMALL LETTER H [Ll] (h)
xfix 0x48 20:10
20:10 djanatyn left 20:11 djanatyn joined 20:14 zakharyas joined 20:15 bjz_ joined, bjz left, sojuzupak left
xfix r: my $try = ''say Q[@A`dO world!]~|q{HeLhg}''; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value); 20:18
camelia rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/AKih8kxW7C␤Two terms in a row␤at /tmp/AKih8kxW7C:1␤------> my $try = ''⏏say Q[@A`dO world!]~|q{HeLhg}''; my $bh ␤ expecting any of:␤ postfix␤ infix …»
..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/ABxHl5YTZY␤Two terms in a row␤at /tmp/ABxHl5YTZY:1␤------> my $try = ''⏏say Q[@A`dO world!]~|q{HeLhg}''; my $bh ␤ expecting any of:␤ postfix␤ infi…»
..rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/25pIDWrxes␤Two terms in a row␤at /tmp/25pIDWrxes:1␤------> my $try = ''⏏say Q[@A`dO world!]~|q{HeLhg}''; my $bh ␤ expecting any of:␤ postfix␤ infix s…»
xfix r: my $try = 'say Q[@A`dO world!]~|q{HeLhg}'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value);
camelia rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/UT9d4AIhu2␤Bogus statement␤at /tmp/UT9d4AIhu2:1␤------> .pairs.grep(*.value > 1).sort(-*.value);⏏␤ expecting any of:␤ method arguments␤ prefix or te…»
..rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/h6MsMh8COz␤Bogus statement␤at /tmp/h6MsMh8COz:1␤------> .pairs.grep(*.value > 1).sort(-*.value);⏏␤ expecting any of:␤ method arguments␤ prefix or t…»
..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/PFh3mQZLUs␤Bogus statement␤at /tmp/PFh3mQZLUs:1␤------> .pairs.grep(*.value > 1).sort(-*.value);⏏␤ expecting any of:␤ method arguments␤ prefix or…»
xfix r: say Q[@A`DO world!]~|q{HeLhg} 20:19
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«Hello world!␤»
xfix rp: my $try = 'say Q[@A`DO world!]~|q{HeLhg}'; my $bh = $try.comb.BagHash; .say for $bh.pairs.grep(*.value > 1).sort(-*.value); 20:20
camelia rakudo-parrot 972ac8: OUTPUT«" " => 2␤»
xfix YES!
YES!!!!
psch xfix++ # no-repeat hello world
it does look like line noise though... :) 20:21
BenGoldberg congradulates xfix
xfix There is one repeat, but that one can be fixed by replacing " " with line break.
arnsholt jnthn: When doing run-time class generation on JVM, did you ever run into a problem where the JVM threw an exception when you tried to _instantiate_ a class? 20:22
BenGoldberg tybalt89 on #perl came up with print+q(*TY_[A@]Dld!)^b1534a726,$/
By instantiate, you mean the eqivilant of new ClassThatWasJustGenerated() ? 20:23
arnsholt Pretty much
classObject.newInstance()
BenGoldberg same difference.... but anyway, I personally haven't 20:24
arnsholt It says "java.lang.NoClassDefFoundError: __CStruct_2 (wrong name: __CStruct_4)"
Googling the error message doesn't turn up any useful hits right away
grondilu xfix++ for persverance 20:27
grondilu genuinely think it was impossible 20:28
*thought
xfix codegolf.stackexchange.com/a/18961/3103 20:29
Submitted!
FROGGS xfix++
20:30 kaare__ joined
timotimo i need more reputation to upvote you 20:35
better start building some cool golfs myself
xfix timotimo, make practically anything acceptable, and I'm sure that advanced users will notice you in review panel, in "first posts" section. 20:36
It's easy to get first reputation on codegolf.se.
To upvote, you need 15 points, which would be 2 upvotes. 20:37
timotimo oke :)
i thought it'd be about 15 upvotes
xfix Nope.
timotimo fair enough
xfix One upvote for answer is 10 points.
You start with 1 point.
moritz xfix++ 20:38
20:39 prevost left
dalek ast: a7aecc1 | (Tobias Leich)++ | S05-mass/properties-derived.t:
use a char that actually is a <:GraphemeLink>
20:39
xfix And well, I upvote anything I think I couldn't golf further, so I don't think it's hard to get upvote from me :-).
(also, I already got 2 upvotes :-)) 20:40
FROGGS .u 8AB0 20:41
yoleaux No characters found
FROGGS .u U+8AB0
yoleaux No characters found
FROGGS .u 誰
yoleaux No characters found
FROGGS gah
jnthn arnsholt: No, don't recall that. But it looks like you tried to class load it with one name and gave the class file another one... 20:44
xfix I shortened my program by ONE character. 20:46
codegolf.stackexchange.com/a/18961/3103
(not that it matters or anything)
moritz ah, with <> 20:51
xfix Also, Perl 6 is a huge language, so I was sure this task was possible. 20:53
Somehow.
colomon xfix++
xfix I'm not sure why I even like that. C++ is completely awful in my opinion. 20:54
But perhaps it's because Perl 6 is consistent.
Ayiko xfix, why not use tab instead of newline? makes it easier to cp in REPL 20:55
xfix That's because codegolf.se doesn't support tabs, so I would have to mention this in instructions.
This makes it easier to copy paste in my opinion.
Ayiko oh, ok then 20:56
20:56 beastd joined
xfix It replaces tabs with spaces. 20:56
20:57 leninist left
Ayiko now for the hard part: getting the most votes... 20:58
xfix That won't be difficult, I think. 20:59
I already got 3 upvotes in 30 minutes.
grondilu the P5 solution will be hard to beat
20:59 cognominal left 21:00 trservis joined, cognominal joined
xfix Perl 5? It has 44 bytes. 21:00
21:00 molaf left
xfix Dunno, my solution is shorter :-). But well, people vote on originality too :-). 21:00
codegolf.stackexchange.com/a/17103/3103 21:01
grondilu it's just that doing it in P5 is kind of impressive, imho
xfix Yeah.
I upvoted this.
codegolf.stackexchange.com/a/17103/3103 has many upvotes, but can be way shorter.
(and this is codegolf)
print sum(ord(c) for c in 'Happy new year to you!')
This is supposed to print 2014 without any numbers in code. 21:02
I only have 43 upvotes with my solution in 9 bytes.
psch jnthn: gist.github.com/peschwa/8528991 seems to fix &trial_bind for the case i had problems with 21:05
the replacement of " for ' in l43 obviously isn't neccessary... :)
also i'll be running spectest in a bit, my machine is a bit slow though so it'll be a while, maybe there's something obviously wrong there anyway 21:06
21:07 pecastro joined
cognominal libmoar.dylib is not found on my mac To be found I had to copy it in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib 21:07
21:10 sftp joined
cognominal the invocation does not seem suspicious to my naive eyes though : clang -dynamiclib -O1 -Wl,-rpath,/Users/cog/git/rakudo/install/lib -O1 -lpthread -o dynext/libperl6_ops_moar.dylib dynext/perl6_ops.o dynext/container.o -lmoar 21:10
xfix Hm, I wonder how hard would be to make something like 'make golf' from Ruby in Perl 6.
(in case you are wondering what 'make golf' is, see ruby.janlelis.de/34-do-you-know-the...er-goruby)
21:11 sftp_ left 21:14 trservis left
jnthn psch: Why the commented out line at the end? 21:17
cognominal jnthn, ^^ problems compiling rakudo with moarvm on a mac 21:18
jnthn cognominal: Yes, known, I'm not the person to fix that. 21:19
cognominal ok, thx.
psch that's blindly adopted from the java binder, in the same scoping depths it doesn't return anything there either 21:20
jnthn psch: Well, remove it, don't comment it out... 21:21
psch oh, right
jnthn Tehre's version control for that :)
Anyway, looks good...
Will apply it and spectest
With the commented out line gone :)
psch the masking of $flags inside the body was what threw me off yesterday
anyway, yeah, i've been running spectests for at least 10 minutes an i'm somewhere in S02-types... :) 21:22
moritz if anybody feels like hacking the build system: rakudo on parrot has this nice thing that if you rebuild and install nqp, you just have to type 'make' in rakudo and it works fine 21:23
whereas the other two backends die with "missing or wrong version of ..." 21:24
if you don't clean out rakudo first
that's kinda annoying
jnthn psch: Oh, my whole run is about 6 minutes :) 21:25
moritz it helps to have a few fast cores and enough RAM to use them all at the same time :-) 21:26
jnthn I run --jobs=6 and memory used by the 6 never tops 1 gig, it seems... :) 21:27
21:27 zby_home_ left 21:29 cognominal left
arnsholt jnthn: Yeah, that's the weird thing. I generate it like P6Opaque does, so shouldn't happen... 21:30
21:30 cognominal joined
psch moritz: can you spare a moment to look at PR#237 and roastPR#36? those should work for all backends as soon as jnthn merged the change to &trial_bind 21:30
where "those" = the test cases
21:31 wtw left
moritz psch: I took a quick look yesterday, and decided that I need to allocate more time to read through it, because the diff is more than a few lines 21:32
21:32 berekuk left
moritz psch: sadly right now I'm off to bed, but I hope to review it tomorrow 21:32
psch alright, no worries
i fully expect potential difficulties :)
lue r: my @a = <z z z>; for ^+@a { if @a[$_] eq 'z' { @a.splice($_,1,<y y>); } }; say @a.perl
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«Array.new("y", "y", "y", "y", "z")␤»
21:33 berekuk joined
lue That fails locally for me, somehow... 21:33
Ah, I know what it was :)
dalek kudo/nom: 1c37f3e | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Fix trial bind analysis on Moar backend.

Patch courtesy of psch++.
21:35
21:35 jeffreykegler joined
dalek ast: 38a792c | (Tobias Leich)++ | S05-mass/properties-derived.t:
choose a char that is outside the Ideographic range
21:35
psch yay my first patch in rakduo :)
jnthn psch++ # contributing to Rakudo \o/ 21:36
21:37 berekuk left 21:38 denis_boyun left 21:41 zakharyas left 21:44 berekuk joined
colomon psch++ 21:47
21:51 ribasushi left
lue How can I check if there's anything in $*IN ? $*IN.slurp hangs if there's nothing in standard in. 21:52
jnthn lue: On all backends, or just on Moar? 21:53
lue just parrot, actually
(maybe it's actually waiting to get standard input) 21:54
21:54 ribasushi joined
lue Well, I've only tested parrot so far, to be clear. 21:54
grondilu you mean reading $*IN without consuming it? 21:56
lue No, I find that $*IN.slurp just sits there if I didn't do something like echo "HELLO" | perl6
Juerd No select or IO::Select? 21:57
21:57 johnmilton joined
Juerd slurp blocking until eof is exactly what I'd expect to happen :) 21:57
lue Well, if I type <something>\n^D then it continues. 21:58
geekosaur yes, so it's reading from the terminal as I would expect 21:59
maybe you want to test if stdin is a terminal
lue Well, I'm doing the expand(1) golf on that site from earlier, and I just discovered that expand(1) handles stdin-from-a-terminal, so I guess it's expected behavior. 22:00
grondilu r u talking about the expand unix filter? 22:01
Mouq lue: why not just use $*IN.lines?
lue: expand(1) is a line-based program
lue Because slurp is what comes to mind when I think "get text from file" :) 22:02
(And I don't expect .lines to be more than .split("\n") actually)
grondilu you need to lose this thought pattern. slurp is usually not the best way to open a text file. Because it puts it all in memory, for one. 22:03
use .lines for reading lines, .get for reading characters
lue grondilu: I would think .lines is worse than .slurp for memory, actually. One string vs. multi-element array. 22:04
grondilu .lines is lazy
Mouq lue: thus the while(<>){…} Perl 5 idiom, which is equivalent AFAIK to for $*IN.lines {…} 22:05
lue grondilu: I'll use $*IN.lines for this since it's golf, but I will not be discarding any thought patterns today, thank you :) slurp's just fine with me. 22:06
I kinda wish .split(" "|",") DWIMmed... 22:07
grondilu also, you usually don't have to be explicit about using $*IN. for lines {...} is equivalent to for $*IN.lines {...}
22:08 kbaker left
lue Eh. I still say "lines" doesn't convey any sense of IO, just a convenience for split("\n"). 22:09
masak 'night, #perl6
lue masak o/ 22:10
grondilu lines makes sense also when stdin is a stream. Which is to be expected if you want to make a proper unix filter. You're not supposed to see the end of the input. 22:11
that's also why slurp is usually not nice. It blocks until EOF, while lines blocks until EOL 22:13
lue: lemme guess, you're more a Windows user than a unix user, aren't you? 22:14
lue grondilu: What? Why? Idun....
Is there something *so wrong* with me liking slurp or something?
grondilu well, kind of. I mean, there's a reason why this command does not exist in P5. 22:15
it's just not quite the unix philosophy, where a good program is a text filter. It's not supposed to swallow it all at once. 22:16
lue grondilu: Usually reasons for something being bad are based on them appearing in P5 but not in P6, not the inverse. You'll have to ask whoever came up with slurp on why that's better than P5. 22:17
colomon slurp is great if you just want to feed what you're reading to a grammar
lue (and it case it wasn't clear: I'm not in the slightest of ways a Windows user. I'd /love/ to know how my wanting to use .slurp would indicate that.) 22:18
Ayiko not the ^D in any case, you need ^Z<enter> on windows 22:20
Mouq colomon: well... i'd love to be able to match IO streams. makes working with giant xml files in P6 more viable
colomon Mouq: absolutely 22:21
lue "for lines {" doesn't actually work, I have to use $*IN 22:22
grondilu really? I must be missing something. As been working for ages. We may not be talking about the same thing.
colomon actually, it needs to be "for lines() {" 22:23
grondilu oh
yeah
that's kind of annoying btw
Mouq n: .say for lines 22:24
camelia niecza v24-109-g48a8de3: OUTPUT«Stille Nacht! Heilige Nacht!␤Alles schläft; einsam wacht␤Nur das traute heilige Paar.␤Holder Knab im lockigem Haar,␤Schlafe in himmlischer Ruh!␤Schlafe in himmlischer Ruh!␤␤Stille Nacht! Heilige Nacht!␤Gottes Sohn! O wie lacht␤Lieb…»
Mouq r: .say for lines
camelia ( no output )
..rakudo-moar 972ac8: OUTPUT«(signal SEGV)»
..rakudo-parrot 972ac8: OUTPUT«Stille Nacht! Heilige Nacht!␤Alles schläft; einsam wacht␤Nur das traute heilige Paar.␤Holder Knab im lockigem Haar,␤Schlafe in himmlischer Ruh!␤Schlafe in himmlischer Ruh!␤␤Stille Nacht! Heilige Nacht!␤Gottes Sohn! O wie lacht␤Lieb´ a…»
Mouq hm
lue I'm guessing "for lines { ... } " is seen as "for lines({ ... })" 22:25
Ayiko m: for (lines) { .say }
camelia rakudo-moar 972ac8: OUTPUT«(signal SEGV)»
Mouq std: for lines { .say }
colomon what lue said
camelia std 09dda5b: OUTPUT«===SORRY!===␤Function 'lines' needs parens to avoid gobbling block at /tmp/0VwsOIAOU_ line 1:␤------> for lines⏏ { .say }␤Missing block (apparently gobbled by 'lines') at /tmp/0VwsOIAOU_ line 1:␤------> for line…»
Mouq &
grondilu r: sub foo { ^5 }; for foo { .say } 22:26
camelia rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/QISobf1iem␤Missing block␤at /tmp/QISobf1iem:1␤------> sub foo { ^5 }; for foo { .say }⏏<EOL>␤ expecting any of:␤ method arguments␤ postfix␤ …»
..rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/tWocwwsd5z␤Missing block␤at /tmp/tWocwwsd5z:1␤------> sub foo { ^5 }; for foo { .say }⏏<EOL>␤ expecting any of:␤ method arguments␤ postfix␤ …»
..rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/sRlCyJZtmG␤Missing block␤at /tmp/sRlCyJZtmG:1␤------> sub foo { ^5 }; for foo { .say }⏏<EOL>␤ expecting any of:␤ method arguments␤ postfix␤ …»
grondilu r: sub foo { ^5 }; for foo() { .say }
camelia rakudo-parrot 972ac8, rakudo-jvm 972ac8, rakudo-moar 972ac8: OUTPUT«0␤1␤2␤3␤4␤»
colomon gobbling blocks is really handy if you're trying to write functions that take blocks
grondilu oh come on, that's silly
r: sub foo() { ^5 }; for foo { .say }
camelia rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/nya1FUc7uJ␤Missing block␤at /tmp/nya1FUc7uJ:1␤------> sub foo() { ^5 }; for foo { .say }⏏<EOL>␤ expecting any of:␤ method arguments␤ postfix␤ …»
..rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/L8ww1xWKwt␤Missing block␤at /tmp/L8ww1xWKwt:1␤------> sub foo() { ^5 }; for foo { .say }⏏<EOL>␤ expecting any of:␤ method arguments␤ postfix␤ …»
..rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/7CWSmiibph␤Missing block␤at /tmp/7CWSmiibph:1␤------> sub foo() { ^5 }; for foo { .say }⏏<EOL>␤ expecting any of:␤ method arguments␤ postfix␤ …»
grondilu if foo doesn't take any argument, the parser should accept for foo {...} 22:27
no?
jnthn grondilu: What if foo is defined later?
lue grondilu: I don't think P6 is into special-casing various Signatures. Could be wrong though.
colomon how is the parser supposed to know if foo takes an argument?
or what if it takes any number of arguments? 22:28
grondilu because signature?
lue Here's what I have so far (could use a lot more golfing I'm sure): gist.github.com/lue/b497d0196060f2b591ff
grondilu r: sub term:<foo> { ^5 }; for foo { .say } 22:29
camelia rakudo-moar 972ac8: OUTPUT«===SORRY!===␤Cannot find method 'flat'␤»
..rakudo-parrot 972ac8, rakudo-jvm 972ac8: OUTPUT«0␤1␤2␤3␤4␤»
grondilu it works with terms. I don't see why it could not work with functions with a zero argument signature. 22:30
(unless it's a multi, that is)
colomon note carefully what jnthn++ said: what if foo is defined later? 22:31
grondilu I don't understand what he means. 22:32
oh
I dunno. I guess if jnthn says it's not possible, he must have good reasons. 22:33
colomon grondilu: you can call to a function defined later in a file, right? 22:34
22:34 dmol left
grondilu but it seems to me that if the compiler knows that foo is a function when it compiles 'for foo {...}', then it knows a thing or two about foo. Including its signature. Even if it is defined later? 22:35
colomon no
or rather, it parses then it compiles.
you're asking it to change the parse based on things that happen later in the file.
grondilu ok, I think I get it 22:36
colomon but p6 is always parsed in one pass. that's a design goal.
when you define a term, you are changing the p6 grammar for your program. you couldn't call that term before you defined it. but you can call a sub. 22:37
colomon wishes TimToady or jnthn were available to explain, as they'd probably do it better and more accurately. 22:38
Mouq r: multi foo () { say "mmh" }; foo { say "hmm" }; multi foo (&c) { c() }
camelia rakudo-parrot 1c37f3, rakudo-jvm 1c37f3, rakudo-moar 1c37f3: OUTPUT«hmm␤»
diakopter Mouq: you need a multi 22:39
colomon and sub calls gobbling blocks is really awesome for things like Damian's io-prompter.
diakopter on the middle one 22:40
grondilu ok, signatures do not affect syntax in anyway, IIUC
psch r: sub term:<foo> { ^bar() }; sub bar { 5 }; say foo;
camelia rakudo-moar 1c37f3: OUTPUT«===SORRY!===␤Cannot find method 'flat'␤»
..rakudo-parrot 1c37f3, rakudo-jvm 1c37f3: OUTPUT«0..^5␤»
diakopter o_O
Mouq r: #`[diakopter:] multi foo () { say "mmh" }; for foo { say "hmm" }; multi foo (&c) { c() } # was more what i was going for
camelia rakudo-jvm 1c37f3: OUTPUT«===SORRY!=== Error while compiling /tmp/QiltiAjwJW␤Missing block␤at /tmp/QiltiAjwJW:1␤------> () { say "mmh" }; for foo { say "hmm" }⏏; multi foo (&c) { c() } # was more what␤ expecting any of:␤ po…»
..rakudo-moar 1c37f3: OUTPUT«===SORRY!=== Error while compiling /tmp/dwbDgFAMZW␤Missing block␤at /tmp/dwbDgFAMZW:1␤------> () { say "mmh" }; for foo { say "hmm" }⏏; multi foo (&c) { c() } # was more what␤ expecting any of:␤ p…»
..rakudo-parrot 1c37f3: OUTPUT«===SORRY!=== Error while compiling /tmp/X8EHNv8j1Z␤Missing block␤at /tmp/X8EHNv8j1Z:1␤------> () { say "mmh" }; for foo { say "hmm" }⏏; multi foo (&c) { c() } # was more what␤ expecting any of:␤ …»
Mouq ah, spam, sorry 22:41
psch for reference, spectest finished just now 22:43
but then i'm running on 1 core inside a vm...
not that'd mean it'd be much faster otherwise
22:45 xenoterracide left
lue Any obvious non-golfy things in the gist I pasted (aside from the copious amounts of whitespace)? 22:45
Mouq non-golfy? 22:46
psch with my optimizer patch and the &trial_bind patch i get these results: gist.github.com/peschwa/8530900 - i guess i'll compare which of those fail without my patches and which don't, in addition to the one jnthn++ linked in the PR
but for now i'll go to sleep, gnight #perl6
22:47 psch left
lue Mouq: can be golfed further. 22:47
lue & for a bit
btyler cognominal: still around? 22:53
Mouq lue: I'd use `get` instead of `$t` and put everything in the mainline 22:55
22:55 xenoterracide joined
Mouq *instead of `MAIN` 22:55
that's still golfing, i suppose 22:56
22:57 beastd left, spider-mario left
lue Mouq: that's an idea, though I was trying to replicate the original `expand` program, which uses -t for the tablist. 22:58
Mouq lue: ahh 23:03
lue: i don't know how you'd get spaces (`/","|" "/`) in $t though
lue Granted, the application doesn't say that's what you have to do, and I'm pretty sure the C solution doesn't do that, but I'd like to stick to the inspiration for the puzzle :)
s/application/puzzle/ 23:04
Mouq: -t="4 8 16"
Mouq ohhh 23:05
lue: i'd have a golfed version that only does the basics of the spec 23:06
nerm, the application
lue: but that's your decision :P
lue Mouq: a basic version is an idea, though I'm not interested in working on this any more for now :P . 23:07
23:09 kivutar joined 23:10 kivutar left 23:13 Rotwang left 23:27 bluescreen10 left
rjbs There's no synopsis 23. Does p6 have a taint-like mechanism? 23:33
or is it just "types"? :)
23:38 berekuk left 23:43 johnmilton left
Mouq rjbs: i've never seen anything about a taint mode in p6 23:44
or something similar
clsn There's supposed to be a Taint enum, which is the only reference I remember.
23:45 thou joined
Mouq i could imagine something like a class Tainted is Str { } and sub infix<~> (Tainted $a, Str $b) { Tainted.new($a.Str~$b) } or something 23:47
*infix:<~>
vOv
rjbs: I'm sure there are other people not on right now who could tell you more 23:48
geekosaur would expect it to be a trait...
Mouq yeah… 23:50
a role?
23:51 raiph left
clsn S12 speaks of an our enum Taint does Tainting <Untainted Tainted>; 23:52
I don't know if it's mentioned anyplace else.
23:52 raiph joined
Mouq ohh, "Note that Bool and Taint are not role names themselves but imply roles" 23:53
clsn Anyone get to try my Signature matching yet? If I commit the new tests I have to roast, the current suite will fail most of them. 23:54
jnthn clsn: I left a comment earlier on the PR 23:55
23:55 btyler left
clsn Not seeing it. I might not be using github right. 23:56
Should I be looking at github.com/rakudo/rakudo/pull/235 ? 23:57
jnthn wtf... 23:58
clsn Or do you mean PR 237 ?
jnthn argh 23:59
I menat to comment on yours, but left to comment on 237