»ö« 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 threadchecking ...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 threadQuit in final tapAlive in second threadsleeping 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«1212» | ||
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 threadchecking ...Quit in final tapCaught error: oopsAlive in second threadsleeping 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/GrmLvid7f4Comma 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/2GeP5yVEuhComma 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_shjIbjComma 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/zIieHbRcO2Unable 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 contextFalse» | ||
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 xABxBB 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/Kjz19lk84yUndeclared routine: o used at line 1» | ||
..rakudo-moar 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/3AxzjhhQaKUndeclared routine: o used at line 1» | |||
grondilu | so 0..128? | ||
camelia | ..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/P5y6jXVVSmUndeclared 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 context0use of uninitialized value of type Nil in numeric contextuse of uninitialized value of type Nil in numeric context1use of uninitialized value of type Nil in numeric…» | ||
..rakudo-parrot 972ac8: OUTPUT«0141564325195613699109600986409» | |||
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/16AgqXaJ8mTwo terms in a rowat /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/8mjPwJe8iXTwo terms in a rowat /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/DujughpqbiTwo terms in a rowat /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/H2AGF6JgvCTwo terms in a rowat /tmp/H2AGF6JgvC:1------> say \x⏏$(4B+1) expecting any of: argument list postfix infix stopper …» | ||
..rakudo-jvm 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/s6MGTdDvEkTwo terms in a rowat /tmp/s6MGTdDvEk:1------> say \x⏏$(4B+1) expecting any of: argument list postfix infix stopper …» | |||
..rakudo-parrot 972ac8: OUTPUT«===SORRY!=== Error while compiling /tmp/AHMmj5TrW3Two terms in a rowat /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/AKih8kxW7CTwo terms in a rowat /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/ABxHl5YTZYTwo terms in a rowat /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/25pIDWrxesTwo terms in a rowat /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/UT9d4AIhu2Bogus statementat /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/h6MsMh8COzBogus statementat /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/PFh3mQZLUsBogus statementat /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 wachtNur 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 lachtLieb…» | ||
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 wachtNur 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 lachtLieb´ 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/QISobf1iemMissing blockat /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/tWocwwsd5zMissing blockat /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/sRlCyJZtmGMissing blockat /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«01234» | ||
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/nya1FUc7uJMissing blockat /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/L8ww1xWKwtMissing blockat /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/7CWSmiibphMissing blockat /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«01234» | |||
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/QiltiAjwJWMissing blockat /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/dwbDgFAMZWMissing blockat /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/X8EHNv8j1ZMissing blockat /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 |