Camelia, the Perl 6 bug

IRC log for #perl6, 2011-03-06

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:12 donri left #perl6
00:17 porter235 joined #perl6
00:20 Mowah left #perl6
00:22 porter235 left #perl6
00:27 envi joined #perl6
00:31 dalek niecza: b5e8bce | sorear++ | lib/Kernel.cs:
00:31 dalek niecza: Factor Subscription system out of STable
00:31 dalek niecza: review: https://github.com/sorear/niecza/commit/b5e8bcefda
00:34 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/​index.cgi?first_post_in_test_weblog
00:39 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/​index.cgi?first_post_in_test_weblog
00:41 sorear Who is our contact at TPF?  Who can delete spam on the wiki?
00:41 zac314159 joined #perl6
00:41 zac314159 left #perl6
00:42 flussence well...
00:45 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/index.cgi?1
00:45 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/​index.cgi?first_post_in_test_weblog
00:45 flussence I dunno, but it probably needs some automated system...
00:45 sorear let's ban "Bill"
00:48 flussence yeah, that'd be easier than playing whack-a-mole
00:50 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/index.cgi?1
00:50 colomon left #perl6
00:55 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/index.cgi?1
01:01 dalek tpfwiki: (Bill Klobas)++ | http://www.perlfoundation.org/perl6/index.cgi?1
01:03 colomon joined #perl6
01:03 flussence (or I could just use irssi's regex-ignore to get rid of the wiki messages...)
01:04 sorear or I could disable the tpfwiki plugin in dalek
01:06 sorear done.
01:06 sorear (Bill Klobas) will spam #perl6 no more
01:06 flussence yay
01:06 sorear mind you, I haven't done anything to quell his wiki abuse
01:07 flussence I tried deleting the page a few times, it's obviously not helping so I gave up...
01:08 dalek niecza: 9598dde | sorear++ | / (3 files):
01:08 dalek niecza: Get Threads.pm6 working again after the backend rewrite
01:08 dalek niecza: review: https://github.com/sorear/niecza/commit/9598dde6a2
01:19 am0c^ left #perl6
01:22 colomon left #perl6
01:23 colomon joined #perl6
01:25 dalek niecza: bd64f65 | sorear++ | lib/Threads.pm6:
01:25 dalek niecza: Finish monitor API, add ObjectPipe for moritz++
01:25 dalek niecza: review: https://github.com/sorear/niecza/commit/bd64f6523c
01:28 colomon_ joined #perl6
01:28 colomon left #perl6
01:28 colomon_ is now known as colomon
01:32 silent_h joined #perl6
02:00 TiMBuS is there a pir:: way to call root_new?
02:01 TiMBuS im sure there is. im just not sure what to pass it
02:01 noganex joined #perl6
02:02 noganex_ left #perl6
02:03 TiMBuS ['parrot';'Socket'] <- that's a.. an array PMC maybe? i need a pir repl...
02:09 TiMBuS oh, yeah. its a key.
02:18 porter235 joined #perl6
02:22 porter235 left #perl6
02:26 colomon left #perl6
02:26 colomon joined #perl6
02:28 leprevost joined #perl6
02:29 amiri left #perl6
02:31 whiteknight left #perl6
02:39 ingyfoo left #perl6
02:39 ingy joined #perl6
02:45 AphelionZ joined #perl6
02:53 woosley joined #perl6
03:10 AphelionZ left #perl6
03:19 thelazydeveloper left #perl6
03:31 _jaldhar is now known as jaldhar
03:55 sorear TiMBuS: semi-undocumented feature - root_new and co. can take ResizableStringArray
03:55 sorear TiMBuS: in NQP you can just say pir::root_new__pp(<Foo Bar>); it's more involved in Rakudo though
03:56 TiMBuS sorear, thanks!
03:56 TiMBuS because Key doesnt let me push_pmc even tho the docs say it can
03:59 TiMBuS hmm the more i reimplement Socket::INET the more it feels wrong.
03:59 TiMBuS i dont like throwing everything into the constructor like this..
03:59 sorear niecza: use Threads;
03:59 p6eval niecza v3-39-gbd64f65: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Q:CgOp not allowed in safe mode at /home/p6eval/niecza/lib/Threads.pm6 line 7:␤------> [32m    [33m⏏[31m} }[0m␤␤Q:CgOp not allowed in safe mode at /home/p6eval/niecza/lib/Threads.pm6 line 10:␤------> [32m    [33m⏏[31m}
03:59 p6eval ..}[0m␤␤Q:CgOp not allowe…
04:00 sorear hrm
04:00 sorear I wonder if Threads.pm6 should be whitelisted?  or maybe all modules?  moritz_?
04:01 Tene I don't know about safe mode specifically, but IMO the right way for the evalbot to work is in an os-constrained sandbox.
04:01 Tene Then it works the same for all impls, you don't have to worry about choice of what to whitelist or blacklist, etc.
04:02 Tene selinux sandbox is a great choice for that, fwiw
04:02 TiMBuS awww niecza gets threads before rakudo? booo
04:03 TiMBuS :p
04:05 Tene TiMBuS: I wrote async {}; support for rakudo almost two years ago, but it's been blocked on a parrot bug.
04:08 TiMBuS ah yeah. i remember that bug. something to do with some kind of header object/table not managing itself properly when a thread/hll is spawned?
04:08 TiMBuS i thought someone patched that but it was never added
04:09 Tene there were patches submitted to trac, but nobody ever evaluated them.
04:09 Tene http://trac.parrot.org/parrot/ticket/757 has the gory details
04:10 sorear Tene: I get the impression moritz is really paranoid
04:10 Tene There are plans to replace Parrot's threading system with something much nicer (and functional) someday, but it's lower priority than other work right now.
04:11 sorear Tene: p6eval code runs in a language sandbox under an unprivileged user in a chroot jail on a dedicated VM
04:11 Tene sorear: 'k
04:14 sorear Tene: parrot had real threads once?
04:15 TheMartianGeek joined #perl6
04:17 sorear Tene: you know, if you want to do more fun stuff with async and thread syntax, I have a runtime designed to be mostly threadsafe for you *wink wink wink*
04:17 Tene sorear: Parrot's threading system hasn't changed or otherwise been touched since I've been involved in the project.  At the time I filed that ticket, I could write programs in PIR that spawned other threads etc. and seemed to work fine as far as I could tell, except when the interpreter cloning bug in that ticket was triggered
04:18 porter235 joined #perl6
04:18 silent_h left #perl6
04:18 Tene So, depends on what you mean by "real threads", but they probably still work as long as you don't try to use them after loading anything with a nested namespace.
04:19 TheMartianGeek Is this channel strictly for people who are actually good enough with computers to work on the language itself, or are people who merely use Perl and could offer suggestions or feedback welcome as well?
04:19 sorear TheMartianGeek: everyone is welcome
04:20 TheMartianGeek Okay.  Good.
04:20 TheMartianGeek I'm quite interested in the language, but I am still basically a novice.
04:21 TimToady we will turn you into an expert unless you are very careful :)
04:21 TheMartianGeek As long as you leave me mostly intact physically and mentally, I'm okay with that.
04:22 TimToady we can promise the physically part, I suspect
04:23 sorear What interests you most about the language?
04:23 TimToady one must start out a bit insane to put up with all the stuff that goes by here though
04:24 TimToady esp the jokes
04:24 TimToady sorear++ for saying something useful :)
04:25 TheMartianGeek Hm...
04:25 TheMartianGeek Yeah, good question.
04:25 TimToady it's okay if you just think it's cool :)
04:25 TheMartianGeek I guess I like the flexibility (even if it seems to fail sometimes...) and the syntax?
04:26 TheMartianGeek Out of the four or five programming languages I've looked into, Perl definitely seemed the "coolest".
04:26 TimToady where does it seem to fail for you?
04:27 TheMartianGeek Well, I'll say this: Probably 75% of the problems I've had with Perl have been related to file I/O.
04:27 TimToady ah, Perl 6 IO is still...in a formative stage...
04:27 TheMartianGeek Hm.
04:28 gdey joined #perl6
04:28 TimToady we're trying to make different mistakes than Perl 5 did
04:28 TheMartianGeek I mentioned on the PerlMonks that I thought it was a pity that Perl has no function to write a string bytes to a file at a certain offset.
04:29 sorear use POSIX; writev(...)
04:29 sorear or was that pwrite
04:29 TimToady that tends to be OSly challenging
04:29 sorear The portable way to do it, both in Perl and C, is seek and write
04:29 TheMartianGeek I think I ended up using a combination of seek and print.
04:29 sorear But you lose thread safeday that way
04:29 TimToady and if you mean "insert" at that point, no OS I know of supports that
04:30 TheMartianGeek ^ Oh?
04:30 TheMartianGeek Yeah, I also had to open the file in read/write mode with "+<".
04:30 sorear didn't one of the old IBM mainframe systems support inserts?  ISAM files?
04:30 TimToady well, in text files, I mean
04:31 sorear hmm, perldoc POSIX doesn't list pwrite nor writev
04:31 TheMartianGeek I see.
04:31 TheMartianGeek And binary files?
04:31 TimToady ISAM was more like a database relation
04:31 sorear writev is wrong anyway
04:31 TimToady or an on-disk hash
04:32 TimToady ISAM was trying to be a b-tree sort of thing
04:33 TimToady (without really knowing what it was doing)
04:33 TheMartianGeek Interestingly enough, I think in the several months I've been using Perl, I might have processed more binary files than text files.
04:33 TimToady oddly, that capability was not added until Perl 3
04:34 TimToady and then only grudgingly
04:34 TimToady in order to make hard things possible, not easy things easy
04:34 TheMartianGeek Will Perl 6 still have a switch statement?
04:35 TiMBuS it does
04:35 TimToady "still"?
04:35 TheMartianGeek I heard something about not using it in 5...
04:35 TimToady 5's switch is borrowed from 6
04:35 TiMBuS im more concerned about "will"
04:35 TimToady though it doesn't work as well
04:36 TimToady that is, 5 doesn't really have a proper type system, so has to support switch semantics with ad hoc rules
04:36 TimToady it falls out much more naturally in 6
04:36 TimToady but the main difference is you can leave off the parens in 6
04:36 TimToady :)
04:37 TheMartianGeek That's one of my favorite functions in any programming language, so I'd be disappointed if I couldn't use it in 6.
04:37 TimToady 6 had it before 5 did
04:37 TheMartianGeek So, switch $var instead of switch($var)?
04:37 TimToady ah, not that switch
04:37 TimToady given/when
04:37 TimToady it's true that you should avoid 'use Switch;'
04:37 TimToady now that 5 has given/when
04:37 sorear Perl 5's "switch" statement has basically nothing to do with anything in any other language
04:38 sorear and it's going away
04:38 sorear oh, wait, switch
04:38 sorear I was thinking of select($fh)
04:38 sorear nevermind
04:39 TheMartianGeek Odd...6's switch statement doesn't even use the "switch" keyword?
04:39 sorear TimToady: What do you consider the most important Perl 5 I/O mistakes to avoid are?
04:39 TimToady "switch" is Computerese Gobbldygook; "given" is English
04:39 sorear TimToady: What do you mean that Perl 2 didn't support binary files?  Didn't Perl 2 run on UNIX where all files are created equal?
04:39 * TimToady laughs in your general direction
04:40 TimToady most Unix utilities of that day couldn't handle data with embedded nulls
04:40 TimToady and they were chock full of arbitrary limitations like "max line length == 1024"
04:41 sorear Perl 2 used asciz format for PVs?
04:41 TimToady PVs are a P5ism
04:41 TimToady but yes
04:42 TheMartianGeek Hm...making the syntax of switch/given a little more flexible might be nice, too...
04:43 TimToady well, P5 IO attached all sorts of information to localizable globals, was the main mistake
04:43 TimToady since there weren't really any objects for handles
04:43 TheMartianGeek At least twice, I've gotten a "bad switch statement" error and driven myself nuts trying to find it only to realize it was because I put the opening bracket on the next line instead of the same line.
04:43 sorear hmm, I guess I need to study 4 some more
04:44 TimToady TheMartianGeek: that's because the switch module was a complete hack, not integrated with the compiler
04:44 TimToady both 5 and 6's given/when is much cleaner
04:44 sorear Switch.pm was a preprocessor
04:44 sorear a text macro
04:44 TheMartianGeek Well, given gives (no pun intended) me the same error in 5.
04:45 sorear you can put the opening brace for given anywhere yo want
04:45 TheMartianGeek Huh.
04:45 TheMartianGeek Maybe I have an outdated version of Perl, then...
04:45 TimToady probably
04:46 sorear given is only supported from Perl 5.10 on, and you need to add "use feature 'given';"
04:46 sorear or maybe it was "use feature 'switch';"
04:46 TimToady or 'use 5.010;'
04:46 TheMartianGeek 5.012002...yeah.
04:46 TimToady which is much shorter :)
04:46 sorear because given steals keywords, and Perl 4/5 are pretty strongly committed to backcompat
04:47 sorear TimToady: do you have a short cute name for Perl 1-4?
04:47 TheMartianGeek 5.010 = 5.10?
04:47 sorear (I get the impression 1-4 differed from each other much less than 4->5 or 5->6)
04:47 sorear TheMartianGeek: yes
04:47 TheMartianGeek Hm.
04:47 TimToady sorear: yes
04:48 TheMartianGeek It says 5.12.2 doesn't support it.
04:48 sorear TheMartianGeek: Perl used decimal floating point for version numbers until 5.6.0; several internal bits still use it
04:48 sorear the version before 5.6.0 was 5.005something
04:48 sorear you can, if you want, say "use v5.12"
04:49 sorear TheMartianGeek: use feature "switch" works here
04:50 TimToady or "use v6;"
04:50 TiMBuS ^
04:50 sorear use v6; doesn't work reliably yet :p
04:51 TimToady if people would just finish writing the test suite and testing it with implementations, I could finish writing the spec :P
04:54 TheMartianGeek Well, this is weird...
04:54 TiMBuS TimToady, speaking of.. the spec says you can't set private attributes without writing a custom BUILD. is this actually the case?
04:55 sorear TiMBuS: I wrote that part of the spec...
04:56 * TiMBuS slowly turns his guns
04:56 sorear TiMBuS: the idea is that SomeClass.new(private_attr => 5) shouldn't break encapsulation automatically
04:56 TimToady private attributes are not part of the public api
04:56 porter235 left #perl6
04:56 TheMartianGeek I must be doing something wrong, because it's giving me all kinds of errors that don't show up when I comment out the given statement.
04:56 sorear TheMartianGeek: nopaste?
04:57 TheMartianGeek Actually, is there a good IRC channel for general Perl questions? I don't want to clog the conversation here...
04:57 sorear This is normally idle time for here
04:57 sorear You aren't hurting at all
04:57 sorear There's #perl-help but I've heard bad things about it
04:58 orafu left #perl6
04:58 orafu joined #perl6
04:59 TheMartianGeek Okay.
04:59 TiMBuS would the acceptable use i am looking for be 'has $.foo is ro', sorear?
04:59 TheMartianGeek http://pastebin.com/9Gg3EMEM <-- This is the piece of code that's causing the problems.
05:05 TimToady TiMBuS: attrs are ro by default
05:05 TiMBuS even public ones?
05:05 TiMBuS i must have completely forgotten this
05:06 TimToady rakudo: class Foo { has $.foo; }; my $foo = Foo.new(:foo(42)); say $foo.perl; $foo.foo = 43;
05:06 p6eval rakudo bfdd78: OUTPUT«Foo.new(foo => 42)␤Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/6SNnikyRiX␤»
05:07 TiMBuS then all is well
05:12 TiMBuS i guess since ive already started digging my hole i should at least keep going till i hit oil: in BUILD, you specify a named param that you are probably going to modify. im not fully aware of the relation between the named param and the private attribute..
05:12 TiMBuS is the idea to modify the named param and then pass the changes to callwith()
05:15 TimToady not really; you just set all the attributes you know about
05:15 TimToady each BUILD is in charge of its own class's infrastructure, and no other class's
05:16 TimToady superclasses or subclasses have their own BUILD that this class need not concern itself with
05:20 TiMBuS i see, well. that begs my last and most embarrassing question. how do i set self$!foo to $!foo? i cant figure out the syntax
05:21 TiMBuS or should i be using BUILD (:$foo) instead of BUILD (:$!foo)
05:21 TiMBuS wait that still doesnt fix it
05:21 Sarten-X joined #perl6
05:22 TiMBuS wait yes it does. $!foo = $foo would work just fine. i hate when im not following my own thoughts..
05:34 izydor joined #perl6
05:40 izydor left #perl6
05:40 flatwhatson_ left #perl6
05:51 sorear TheMartianGeek: I hope we didn't scare you away
05:51 TheMartianGeek Heh.
05:51 woldrich themartiangeek, #perl is for perl5 help
05:51 TheMartianGeek I'm still here, don't worry.
05:51 TheMartianGeek And...okay.
05:52 entel joined #perl6
05:52 sorear Seriously, just put your problem up on pastebin.com or the like and one of us will probably find it in 15s
05:53 TheMartianGeek Oh, actually, I sort of did:
05:53 TheMartianGeek [22:00] <TheMartianGeek> http://pastebin.com/9Gg3EMEM <-- This is the piece of code that's causing the problems.
05:53 sorear Oh
05:53 woldrich Unknown Paste ID!
05:53 sorear I missed it.  Sorry.
05:53 entel anyone here doing web development with perl6?
05:53 TheMartianGeek That's okay.
05:53 TheMartianGeek And the time limit on it seems to have run out...
05:53 izydor joined #perl6
05:53 woldrich May I suggest http://codepad.org
05:54 sorear Oy, time-limited paste services are pure evil.
05:54 sorear Also
05:54 sorear Where are you?
05:54 TheMartianGeek ?
05:54 sorear Your time zone puts you in part of the globe with very little land
05:54 woldrich themartiangeek, God morgon.
05:55 TheMartianGeek Western Montana.
05:55 woldrich crap, I guessed wrong
05:55 sorear ...
05:55 TimToady little land, but Big Sky :)
05:55 TheMartianGeek Actually, I did mention the problem on PerlMonks...should I just link that post?
05:55 * sorear is IRCing via a computer two time zones east of where he actually is
05:56 sorear you are one time zone east of Kentucky.  Not one time zone east of California.
05:56 sorear west, west
05:56 woldrich How do you know?
05:56 sorear woldrich: he pasted something with a timestamp
05:57 woldrich hah
05:57 sorear woldrich: if I were less lazy I'd just use ip2location.com though :p
05:57 TheMartianGeek So, yeah, it would be 10:57 PM for me now.
05:57 TimToady sorear: I use the same server as you, but it reports PST to me
05:57 TimToady (cuz I told it to)
05:58 * sorear less ~larry/.bashrc
05:58 TheMartianGeek http://codepad.org/FOYBhI2x <-- That was the actual code that wouldn't work.
05:59 sorear oo, lots of fun stuff
05:59 sorear TheMartianGeek: Is that 6 or 5?
05:59 sorear it's not valid either, but for different reasons
06:00 sorear if you want it to be valid Perl5, you need when (0)
06:00 sorear the parens are needed
06:00 TheMartianGeek Oh.
06:00 TheMartianGeek Yep, that worked.
06:01 sorear style nit: $i < @array is much more commonly used than $i <= $#array
06:01 sorear (also, use foreach-type loops whenever possible)
06:01 TheMartianGeek Oh.  Okay.
06:01 TimToady and will continue to work in p6
06:02 woldrich you might want to consider using strict and warnings
06:02 TheMartianGeek Yeah, I have both turned on.
06:03 sorear oh, so THAT's the correct syntax for TZ
06:03 sorear I kept typing TZ=PST8PDT
06:05 TimToady yeah, stoopid ain't it?
06:06 kaare_ joined #perl6
06:07 sorear TimToady: What terminal do you use?  I've never been able to get t_Co=256 to do anything useful in vim
06:07 sorear What do you use U+31A COMBINING LEFT ANGLE for so much?
06:08 TheMartianGeek Is there a Perl function for finding blocks containing only one specific character, with certain parameters?
06:08 sorear What do you mean?
06:08 sorear Wow, I had no idea vim did NFG
06:10 TheMartianGeek Like, say I want to open a binary file and find all the blocks of data containing only character 0x00, but each block must be at least 0x20 bytes in length, and every 0x10000 characters in the file are checked individually (so a block going from offset 0x1FFF8-0x20007 would not qualify).
06:10 ssqq joined #perl6
06:11 TimToady U+031A is useful for marking pitch accent in にほんご.
06:11 ssqq left #perl6
06:11 TimToady er, 日本語.
06:13 woldrich sorear, t_Co=256 rarely has any effect. Make sure you're termcap and $TERM env var is correct. 256 colors worked out of the box for me, using urxvt
06:13 woldrich your, even
06:14 sorear TheMartianGeek: I still don't quite follow.  Based on that description it sounds like a file with 1x 0 FFFFx FF should have 0xFF01 blocks, most overlapping
06:15 TimToady I have no idea what t_Co does
06:15 woldrich tells vim how many colors the underlying terminal supports
06:15 TheMartianGeek Hm...
06:16 TimToady might be a fossil copied from somewhere else
06:16 TheMartianGeek Yeah, as I said, it's kind of hard to explain.
06:16 sorear I suppose I should have asked before digging around in ~larry/.vimrc; sorry :/
06:17 woldrich can I steal it?
06:17 TimToady if it's world readable, you don't have to apologize :)
06:20 sorear When you use (::T $x) in a signature, what exactly does T capture?
06:22 TimToady $x.WHAT, I'd think
06:22 TheMartianGeek Okay, say I have a binary file that contains some random data (no 00s), then fifty 00s, then some more nonzero data, then twenty-eight 00s, then some more random data.
06:23 TheMartianGeek I'd want some way to note that there are two blocks of 00s in there, one 50 bytes long and the other 28 bytes long.
06:24 TheMartianGeek But if, say, the forty-first character of the 50-byte one was at a boundary, then that would count as a 41-byte block and a 9-byte block.
06:26 sorear I think what you're looking for is $str.comb(/\0 [ <!{ $/.pos %% 0x10000 }> \0 ]*/)
06:27 sorear Or maybe .split(...)
06:28 xinming_ joined #perl6
06:28 sorear Actually, are you interested in the 0s, or in the stuff between the 0s?
06:28 TheMartianGeek The 0s.
06:30 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/ a [ <!{ $/.pos %% 4 }> a ]* /).perl # using 4 to make the sample shorter
06:30 p6eval niecza v3-39-gbd64f65: OUTPUT«["a", "a", "aa", "aaaa", "a"]␤»
06:30 sorear something like that?
06:31 xinming left #perl6
06:31 TheMartianGeek Hm...
06:32 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/ a ** <!{ $/.pos %% 4 }> /).perl # shorter
06:32 p6eval niecza v3-39-gbd64f65: OUTPUT«["a", "a", "aa", "aaaa", "a"]␤»
06:34 TheMartianGeek I'd have to look into that.  That's a rather confusing-looking statement.
06:34 sorear want it explained?
06:34 TheMartianGeek Sure.
06:35 sorear %% is the "evenly divisible by" operator
06:35 sorear $/.pos %% 4 is true if the current match position is divisible by 4
06:35 sorear that is, if the match position is at a block-of-4 boundary
06:36 sorear <!{ $/.pos %% 4 }> is a negated zero-width assertion, which matches anywhere except a block boundary
06:36 sorear X ** Y is used for lists; it expands to 1 or more of X, with Y between each copy
06:37 sorear so a ** <...> matches 1 or more (a)s, as long as there are no block boundaries between any of them
06:37 sorear $str.comb($regex) is the opposite of Perl5's split; it returns all matches from the string
06:38 sorear (in this case, all sequences of as not spanning a block boundary)
06:38 sorear clear?
06:39 sorear (Don't use niecza for this; it doesn't understand binary files yet and will whine loudly at you about malformed UTF-8)
06:39 TheMartianGeek Hm...
06:40 TheMartianGeek And I suppose the 4 would be the length of each block?
06:40 sorear Yes
06:40 TheMartianGeek Okay.
06:40 TheMartianGeek What about the size and offset of each block, though?
06:42 sorear the first block starts at 0 and has sze 4, the second at 4 and size 4, the third at 8, and so on
06:42 TheMartianGeek No, I mean the size of the smaller blocks within the larger ones.
06:43 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/ a ** <!{ $/.pos %% 4 }> /, :match).map(sub ($m) { $m.from, $m.to }).perl
06:43 p6eval niecza v3-39-gbd64f65: OUTPUT«[0, 1, 3, 4, 4, 6, 8, 12, 12, 13]␤»
06:44 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/ a ** <!{ $/.pos %% 4 }> /, :match).map(sub ($m) { [$m.from, $m.to] }).perl
06:44 p6eval niecza v3-39-gbd64f65: OUTPUT«[[0, 1], [3, 4], [4, 6], [8, 12], [12, 13]]␤»
06:44 sorear use the :match on comb
06:44 TheMartianGeek Like, if the boundaries were 100 bytes apart, one large block might contain a 52-byte smaller block, a 26-byte smaller block, and 22 bytes of unmatched data.
06:44 sorear Do you just want the lengths?
06:44 TheMartianGeek Lengths and offsets.
06:44 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/ a ** <!{ $/.pos %% 4 }> /, :match).map(sub ($m) { [$m.from, $m.chars] }).perl
06:45 p6eval niecza v3-39-gbd64f65: OUTPUT«[[0, 1], [3, 1], [4, 2], [8, 4], [12, 1]]␤»
06:45 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/ a ** <!{ $/.pos %% 4 }> /, :match).map(sub ($m) { [$m.chars, $m.from % 4] }).perl
06:45 p6eval niecza v3-39-gbd64f65: OUTPUT«[[1, 0], [1, 3], [2, 0], [4, 0], [1, 0]]␤»
06:45 sorear length, offset-within-larger-block
06:46 TheMartianGeek I see.
06:46 sorear here's another way to approach the problem:
06:47 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/. ** 4/).map(sub ($bigblock) { $bigblock.comb(/a*/, :match).map(sub ($m) { [$m.chars, $m.from] }) }).perl
06:48 p6eval niecza v3-39-gbd64f65: OUTPUT«[[1, 0], [0, 1], [0, 2], [1, 3], [2, 0], [0, 2], [0, 3], [4, 0]]␤»
06:48 sorear er, looks like I broke it
06:49 sorear oh
06:49 sorear niecza: my $str = "axxa"~"aaxx"~"aaaa"~"a"; say $str.comb(/. ** 4/).map(sub ($bigblock) { [$bigblock.comb(/a+/, :match).map(sub ($m) { [$m.chars, $m.from] })] }).perl
06:49 p6eval niecza v3-39-gbd64f65: OUTPUT«[[[1, 0], [1, 3]], [[2, 0]], [[4, 0]]]␤»
06:49 sorear this does away with the explicit block boundary checks
06:50 sorear if you have much more than 64k of data, you will not get acceptable performance from any current Perl 6 implementation
06:50 sorear and Perl 5 doesn't have an easy way to check block boundaries
06:51 sorear hey, TimToady - what does regexing a Buf look like in Perl 6?  Can we still use \0 ?
06:52 porter235 joined #perl6
06:54 sorear so you should read the data in 64k blocks using sysread, then extract blocks using something like while ($block ~~ m/(\0+)/g) { say "Start $-[0] end $+[0]" }
06:55 sorear =~
06:55 sorear note: I've never used @- or @+ before I don't know  if they work as I think they do
06:56 porter235 left #perl6
06:58 justatheory left #perl6
07:00 TimToady sorear: the intent is that Buf act like a string in all non-Unicodey ways possible
07:02 TimToady perhaps to the point of recognizing ASCII
07:02 TimToady in any case, I'd expect \0 to work
07:04 sorear Under what circumstances may a portable Perl 6 program assume O(1) random access to the contents of Str objects?
07:08 TheMartianGeek Thank you all for the help.
07:09 TheMartianGeek left #perl6
07:11 _twitch joined #perl6
07:11 TimToady sorear: undef NFG, each graphame is a unit cell, so it depends then on whether your strings are actually implemented as continuous cells or as ropes
07:13 TimToady worst case is probably O(log n) for a typical tree-based implementation of string
07:14 TimToady or maybe just O(1) for large values of 1 :)
07:15 TimToady one tends to pay the price on insertions, not on lookups
07:16 sorear TimToady: so, any Perl 6 implementation requires sublinear access by grapheme index?
07:17 TimToady I think that's probably a reasonable assumption
07:17 TimToady cdr lists are right out :)
07:18 sorear I was actually thinking more in terms of perl 5.6-inspired utf8-nfd byte buffers, with O(N) grapheme access but O(1) byte access
07:19 TimToady Perl 5 is actually agnostic on nfc/nfd
07:19 sorear Or Java/C# native strings, which are utf16-nf(agnostic)
07:19 TimToady and gets away with the variable length encoding by caching last location
07:20 TimToady which is usually pretty close to where you want to get next
07:20 TimToady but I think NFG is probably a better approach, assuming we can make it work
07:22 TimToady NFG is really just NFC plus temporary composition of graphemes without a universal composition
07:23 TimToady other than sacrificing rount-tripping of canonicalization (which it shares with NFC), the only other potential problem I see is the possibility of a DOS attack
07:23 TimToady *round
07:24 TimToady but generally, I think I'm in favor of doing most of the work at the program boundaries to make things simpler internally
07:25 TimToady there may be some lazy optimizations that avoid NFG canonicalization long enough to keep the original format all the way through, but that's just an optimization to me
07:25 TimToady and the potential for errors multiplies when you do that sort of thing
07:26 TimToady plus such code could be written at the codepoint level instead if it wants to be grapheme agnostic
07:26 sorear what I mostly worry about with NFG is the constant factors that show up in an application like the classic "count word frequencies"
07:27 TimToady well, there you really want canonicalization
07:28 TimToady and I think that most of the common canonicalization is handled by NFC, until you get into exotic languages
07:29 TimToady so your typical "western" NFC text is not going to require much of a constant
07:29 TimToady nor, typically, will Chinese or Japanese
07:30 Guest87704 left #perl6
07:30 TimToady languages without NFC forms of graphemes will take more work, but I suspect the NFG form will be even more appreciated in such languages
07:31 TimToady and they can always revert to codepoints if they don't want it
07:34 * TimToady should probably revert to bed, to combat further jetlag...
07:34 sorear Do you imagine a per-string or per-interpreter "dynamic codepoint pool"?
07:35 TimToady originally per-interpreter, but parrot came up with per-string
07:35 TimToady can argue it both ways, or various intermediate "zone" interpretations
07:35 TimToady per-string is safer from DOS, but makes more work
07:37 sorear per-interpreter sounds like it would be difficult for the GC
07:38 TimToady nodnod
07:38 sorear especially when using an existing VM like I'm doing
07:38 sorear C#-level finalizers are fairly expensive :/
07:39 TimToady otoh a given language might just have a fairly permanent set of common compositions that could be factored out
07:40 TimToady so a given table might normally last the life of the process anyway, especially if precomputed for a particular langauge
07:41 TimToady there are probably several PhD theses in there... :)
07:42 TimToady none of which I intend to solve tonight...
07:42 TimToady zzz & # thunk
07:43 * sorear out
07:43 Tene Man, Devel::Declare is not as documented as I'd like.
07:43 Tene Nor is the Perl 5 source.
07:53 flatwhatson_ joined #perl6
07:57 ymasory left #perl6
08:08 donri joined #perl6
08:30 masak joined #perl6
08:30 masak morning, zebras!
08:30 Tene hi masak :)
08:32 tadzik oh, so I should wake up too :)
08:32 tadzik hello hello
08:32 Tene morning tadzik
08:32 masak tadzik: goedemorgen :)
08:34 tadzik wow, that's my third Dutch word, after "dank je wel" and "smaak" :)
08:36 masak remember, the 'g' letters are pronounced /*phlegm*/
08:38 tadzik as in pflroedemorgen, or even pflroedemorpflren?
08:39 masak the latter.
08:39 masak *chhhh*oedemor*chhhh*en
08:39 tadzik I can't wait to say this to mberends :]
08:40 masak for bonus points, the 'oe' sounds a bit like the 'i' in 'bird'.
08:40 tadzik that's what I thought
08:40 masak tadzik++
08:41 tadzik brb
08:52 porter235 joined #perl6
08:56 masak sorear: ping
08:57 porter235 left #perl6
09:01 Tene I wonder if I'll be able to understand this Devel::Declare stuff well enough to write good documentation for it.
09:04 masak mmm.... Devel::Declare...
09:05 masak I think mst once used that module as part of an argument chain that Modern Perl 5 is a perfectly adequate Perl 6. :)
09:09 Tene If this is what Perl 6 looks like to outsiders, we're doing it wrong.
09:09 masak :)
09:10 masak let's do it abundantly right, then.
09:11 moritz_ good morning
09:11 moritz_ oooh, large backlog :-)
09:11 masak good morniz, moring.
09:15 * masak is building Mono
09:17 Tene masak: No, don't do that!  Please, just let the compiler build it for you.
09:17 masak this explains a lot. why my fingertips are so sore from manipulating raw bits, for example.
09:20 Mowah joined #perl6
09:25 colomon left #perl6
09:25 p3n left #perl6
09:33 colomon joined #perl6
09:44 masak it's a lovely day in Vught. my plans for today are (1) release Yapsi, (2) do a bunch of p5 statistics.
09:47 masak doing --target=FUTURE and --target=SIC to inspect part-way results in Yapsi is really nice.
09:48 jferrero left #perl6
09:50 moritz_ is jnthn awake? :-)
09:51 masak nothing indicates that he is.
10:02 p3n joined #perl6
10:04 jferrero joined #perl6
10:07 Chillance left #perl6
10:10 satyavvd joined #perl6
10:12 jnthn jnthn is awake!
10:13 colomon left #perl6
10:14 TiMBuS ($!peeraddr, $!peerport) = $peeraddr.split(':', 2); # why does this assign a Seq to $!peeraddr :/
10:15 masak rakudo: my ($a, $b); ($a, $b) = "foo:bar:baz".split(':', 2); say $a; say $b
10:15 p6eval rakudo bfdd78: OUTPUT«foo␤bar:baz␤»
10:15 masak worksforme
10:15 masak rakudo: my ($a, $b); ($a, $b) = "foo:bar:baz".split(':', 2); say $a.WHAT; say $b.WHAT
10:15 p6eval rakudo bfdd78: OUTPUT«Str()␤Str()␤»
10:15 TiMBuS yeah it works there
10:15 TiMBuS but, not when you use attributes i guess
10:16 masak rakudo: class A { has $!a; has $!b; method foo { ($!a, $!b) = "foo:bar:baz".split(':', 2); say $!a.WHAT; say $!b.WHAT } }; A.new.foo
10:16 p6eval rakudo bfdd78: OUTPUT«Seq()␤Any()␤»
10:16 * masak submits rakudobug
10:16 TiMBuS :/
10:16 masak definitely a bug.
10:16 masak TiMBuS++ for finding it.
10:16 masak want to brainstorm a workaround, too? :)
10:16 masak I'm sure there is one.
10:16 satyavvd_ joined #perl6
10:17 TiMBuS i guess another bug would be regexes in initializers (default values or submethod BUILD) dont populate to $/
10:17 satyavvd left #perl6
10:17 masak rakudo: class A { has $!a; has $!b; method foo { my $seq = "foo:bar:baz".split(':', 2); ($!a, $!b) = |$seq; say $!a.WHAT; say $!b.WHAT } }; A.new.foo
10:17 p6eval rakudo bfdd78: OUTPUT«Seq()␤Any()␤»
10:17 masak :/
10:17 TiMBuS hmm how about slicing it
10:17 masak rakudo: class A { has $!a; has $!b; method foo { my $seq = "foo:bar:baz".split(':', 2); ($!a, $!b) = $seq.list; say $!a.WHAT; say $!b.WHAT } }; A.new.foo
10:18 p6eval rakudo bfdd78: OUTPUT«Seq()␤Any()␤»
10:18 masak rakudo: class A { has $!a; has $!b; method foo { my $seq = "foo:bar:baz".split(':', 2); ($!a, $!b) = $seq[0, 1]; say $!a.WHAT; say $!b.WHAT } }; A.new.foo
10:18 p6eval rakudo bfdd78: OUTPUT«Seq()␤Any()␤»
10:18 masak stubborn...
10:18 masak rakudo: class A { has $!a; has $!b; method foo { my $seq = "foo:bar:baz".split(':', 2); $!a = $seq[0]; $!b = $seq[1]; say $!a.WHAT; say $!b.WHAT } }; A.new.foo
10:18 p6eval rakudo bfdd78: OUTPUT«Str()␤Str()␤»
10:18 masak ok.
10:18 masak so.
10:19 masak it seems you can't have attributes and list assignment right now.
10:19 TiMBuS :<
10:20 colomon joined #perl6
10:23 tom_tsuruhara joined #perl6
10:26 masak please tell me more about the regexes in initializers.
10:26 masak do you have a bit of golfed code showcasing the issue?
10:29 TiMBuS ok i just tried to golf it down and now it works in the repl
10:31 TiMBuS the same code in a file, however, doesnt work
10:33 woosley left #perl6
10:35 masak then please try a small nopaste.
10:35 masak doing cat $file and then perl6 $file
10:39 TiMBuS hmmm gunna have to retract this bug. it seems to be working now? but i doubt i made all of these $res = ($thing ~~ /pat/).Hash.{'name'} setups without a reason
10:39 TiMBuS and its not very old code..
10:39 * TiMBuS scratches head
10:45 risou joined #perl6
10:45 colomon left #perl6
10:49 cognominal https://github.com/blog/805-git​-clone-http-github-com-tpw-endo # next time I drop the .git, I will not complain to jnthn that I can't clone nqp  :)
10:51 colomon joined #perl6
10:53 porter235 joined #perl6
10:57 porter235 left #perl6
11:16 whiteknight joined #perl6
11:28 woosley joined #perl6
11:31 MayDaniel joined #perl6
11:38 cosimo joined #perl6
11:40 cosimo left #perl6
11:45 am0c joined #perl6
11:45 risou_ joined #perl6
11:46 risou left #perl6
11:48 PacoLinux_ joined #perl6
11:59 rgrau joined #perl6
12:01 PacoLinux_ left #perl6
12:01 drbean_ joined #perl6
12:01 drbean left #perl6
12:03 drbean_ is now known as drbean
12:05 masak std: my $a = 42; say "$a [<file>]"
12:05 p6eval std 4608239: OUTPUT«ok 00:01 122m␤»
12:05 masak rakudo: my $a = 42; say "$a [<file>]"
12:05 p6eval rakudo bfdd78: OUTPUT«===SORRY!===␤Unable to parse infixish, couldn't find final ']' at line 22␤»
12:05 * masak submits rakudobug
12:09 * masak reboots because his laptop is inserting silly pauses into everything
12:09 masak left #perl6
12:10 colomon loliblogged: http://justrakudoit.wordpress.com/2​011/03/06/first-benchmark-results/
12:11 dual left #perl6
12:11 tadzik they look quite strange
12:13 moritz_ it tells me one thing: I should increase the default line width in SVG::Plot
12:14 moritz_ colomon++ for benchmarking
12:15 moritz_ hugme: hug everone
12:15 * hugme hugs everone
12:16 colomon moritz_: just added you to https://github.com/colomon/Benchmark-Plot in case you have notions for improving the graphs today.  I'm going to be very busy, I think.  :)
12:17 dual joined #perl6
12:17 moritz_ colomon: thanks
12:17 Tene aw, ENOMASAK
12:25 rhr left #perl6
12:33 rhr joined #perl6
12:34 masak joined #perl6
12:36 masak as necessary evils go, rebooting is a sordid thing.
12:36 masak bleh.
12:40 masak this is how I want to approach work with Perl 6: http://j.mp/bncGYL (via @timoreilly, @newsycombinator)
12:43 nwc10 joined #perl6
12:44 Tene I always liked that story.
12:45 nwc10 left #perl6
12:46 PacoLinux_ joined #perl6
12:47 dalek yapsi: 14fa691 | tadzik++ | bin/yapsi:
12:47 dalek yapsi: Add a basic REPL
12:47 dalek yapsi: review: https://github.com/masak/yapsi/commit/14fa691f56
12:47 dalek yapsi: 5f235c4 | masak++ | bin/yapsi:
12:47 dalek yapsi: [bin/yapsi] slight refactor
12:47 dalek yapsi:
12:47 dalek yapsi: Changed sub signature, and the way the prompt looks.
12:47 dalek yapsi: review: https://github.com/masak/yapsi/commit/5f235c476a
12:47 dalek yapsi: 28889de | masak++ | bin/yapsi:
12:47 dalek yapsi: [bin/yapsi] add that newline before exiting REPL
12:47 dalek yapsi:
12:47 dalek yapsi: It's very important. Lots of REPLs forget to add it. Yapsi doesn't. :)
12:47 dalek yapsi: review: https://github.com/masak/yapsi/commit/28889de403
12:47 tadzik yay, yapsirepl!
12:52 dalek rakudo: 4aa68e1 | jnthn++ | src/Perl6/Module/Loader.pm:
12:52 dalek rakudo: Work around Parrot #TT2040. This unbreaks module loading - and thus make spectest - on Win32. Not sure why we end up with unicode strings here and not on other platforms, mind.
12:52 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/4aa68e1a06
12:52 moritz_ jnthn: the "why" is easy to answer: Win32 has an encoding-aware file name API
12:53 jnthn Ah.
12:53 moritz_ jnthn: POSIX-based systems don't
12:53 jnthn OK
12:53 jnthn Well, I think it's just a Parrot NYI.
12:53 jnthn I trac'd it.
12:53 porter235 joined #perl6
12:53 jnthn So once that gets dealt with, can undo the workaround.
12:53 cotto left #perl6
12:54 cotto joined #perl6
12:59 leprevost left #perl6
12:59 masak phenny: tell mberends https://lwn.net/Articles/328438/
12:59 phenny masak: I'll pass that on when mberends is around.
13:00 masak (mberends and I were talking afk about the merits of rebasing over merging.)
13:01 porter235 left #perl6
13:01 dalek nqp/lexical-setting: ebf7adc | jonathan++ | / (6 files):
13:01 dalek nqp/lexical-setting: Merge latest changes from mater into lexical-setting.
13:01 dalek nqp/lexical-setting: review: https://github.com/perl6/nqp/commit/ebf7adce07
13:01 colomon left #perl6
13:01 colomon joined #perl6
13:03 PacoLinux_ left #perl6
13:08 leprevost joined #perl6
13:09 masak left #perl6
13:09 pmurias joined #perl6
13:15 dalek nqp: d36ca9c | jonathan++ | / (2 files):
13:15 dalek nqp: Stub in a --setting= command line argument.
13:15 dalek nqp: review: https://github.com/perl6/nqp/commit/d36ca9c9f5
13:15 dalek nqp: 93dc13f | jonathan++ | / (3 files):
13:15 dalek nqp: Re-work the build and bootstrap process to fit the new role of the setting. Since it'll be the outer lexical scope of programs, it needs to be built like the rest of the various bootstrapped bits, not just sa if it's a module.
13:15 dalek left #perl6
13:16 dalek joined #perl6
13:19 PacoLinux_ joined #perl6
13:21 dalek niecza: 6fe05ff | pmurias++ | / (2 files):
13:21 dalek niecza: [cl-backend] support &foo and bunch of small hacks
13:21 dalek niecza: review: https://github.com/sorear/niecza/commit/6fe05ff9fe
13:21 dalek niecza: d85b4f0 | pmurias++ | cl-backend/backend.lisp:
13:21 dalek niecza: [cl-backend] take the unit name and mainline sub from the nam file
13:21 dalek niecza: review: https://github.com/sorear/niecza/commit/d85b4f0c6f
13:28 masak joined #perl6
13:30 * Tene finally sleeps
13:30 dalek nqp: 080d583 | moritz++ | build/Makefile.in:
13:30 dalek nqp: make GNU make happier
13:30 dalek nqp: review: https://github.com/perl6/nqp/commit/080d583ae8
13:31 masak good night, Tene. dream of tokenization and macros :)
13:33 PacoLinux_ left #perl6
13:33 colomon left #perl6
13:33 colomon_ joined #perl6
13:49 cognominal why Toulouse for this rakudo release?
13:49 masak because there was much to gain and almost nothing Tolouse...? :P
13:50 cognominal good pun
13:51 MayDaniel left #perl6
13:51 masak I've been spending the whole weekend with jnthn.
13:51 frettled Tolouse or not Tolouse, that was the question.
13:51 cognominal in the way to Albi, we went to Toulouse with jnthn
13:52 masak in Soviet Russia, you go Towin.
13:53 cognominal so that's the next release name?
13:53 masak Torock.
13:53 satyavvd_ left #perl6
13:53 masak oh, you were being serious? :P
13:54 colomon_ left #perl6
13:54 masak generally, what happens is that the release manager (whoever it is that month) asks "ok, so what .pm group should we choose this month?"
13:54 masak and then no-one has any idea for a few hours.
13:54 masak and then the release manager has to choose a name or other.
13:55 masak and that's the most difficult part of our release process. the rest is dead simple.
13:55 cognominal we don't have a .pm group in toulouse :(
13:55 masak seems that didn't stop us.
13:55 cognominal We got Lyon and Paris, that's it
13:55 flussence .pm groups autovivify, apparently
13:56 cognominal in a sense, that's what we did with jnthn
13:56 masak you autovivified jnthn?!
13:56 jnthn wait, what?
13:57 masak ...without telling him?
13:57 masak jnthn: pro tip: never go to France again.
13:57 * masak remembers the scene from Pulp Fiction
13:57 tadzik Royalle with Cheese?
13:57 masak :D
13:57 masak no, not that scene.
13:57 cognominal when we were there, we manage to see the Beluga plane in the air :  http://en.wikipedia.org/wiki/Airbus_Beluga
13:58 moritz_ hugme: add tadzik to Math-Model
13:58 * hugme hugs tadzik. Welcome to Math-Model!
13:58 moritz_ tadzik: feel free to merge your pull request if I don't get around to it :-)
13:59 tadzik thanks :)
14:01 moritz_ tadzik++
14:07 takesako left #perl6
14:11 colomon joined #perl6
14:13 masak lol, we're going for a walk
14:14 MayDaniel joined #perl6
14:19 jeteve joined #perl6
14:20 jeteve Hi all, I've decided to spend some of my sunday time getting my feet wet with perl6!
14:21 jeteve problem is I can't get the emacs perl(6) mode to work
14:21 jeteve https://github.com/jrockway​/cperl-mode/tree/perl6-pugs . Downloaded form there
14:21 jeteve s/form/from/
14:23 flussence try this branch? it's a bit newer https://github.com/jrockway/cp​erl-mode/tree/mxd-perl6-merge
14:25 jeteve doing that right now :)
14:27 envi left #perl6
14:28 jeteve It works :) I have to activate it manually, but it doesn't break my indentations anymore
14:28 jeteve thans flussence
14:28 jeteve thanks
14:28 flussence no prob
14:30 colomon_ joined #perl6
14:30 colomon left #perl6
14:30 colomon_ is now known as colomon
14:44 M_o_C joined #perl6
14:51 am0c left #perl6
14:56 porter235 joined #perl6
14:57 Trashlord left #perl6
14:59 woosley left #perl6
15:02 Trashlord joined #perl6
15:05 porter235 left #perl6
15:20 masak jeteve: hi! happy you're getting your feet wet.
15:21 masak if anything comes up, be sure to let us know, and we'll help.
15:22 jeteve Hi masak, sure, thx!
15:23 jeteve Anyplace where I could get some reference except the largely incomplete tablets?
15:23 flussence the spec is useful, it's not that easy to follow though
15:23 masak the book.
15:23 masak http://github.com/perl6/book
15:24 jeteve Yeah, I'm reading it :)
15:24 masak src/core is nice.
15:24 masak as is the ecosystem.
15:24 jeteve yeah I thought about this one :D
15:25 jeteve I'm using rakudo star
15:26 masak \o/
15:26 jeteve do'h src/core is written in perl6
15:27 masak nice, eh? :)
15:27 jeteve ok, first I learn perl6, then I infer the reference doc from the source
15:27 masak it's good for learning how perl6 looks.
15:28 jeteve and what is 'pir' is it some low level stuff written in C?
15:30 M_o_C left #perl6
15:30 masak it's the low-level code of Parrot, Rakudo's VM.
15:31 jeteve pir::open__PSS for instance, is it a standard parrot component?
15:31 masak that's the 'open' routine, with a signature of (P, S) and a return type of S.
15:32 masak P means "object" and S means "string".
15:32 jeteve ok, so parrot exposes some low level functions to any language and in Perl6, it's accessible through the 'pir' module?
15:32 masak sort of.
15:32 masak PIR is a language.
15:32 masak and some parts of Rakudo are implemented using PIR.
15:33 pmurias jeteve: pir is an assembler that target parrot
15:35 jeteve ok, so when in some Perl6 code there is pir::something, it's like including some parrot assembler inline in the Perl6 code ?
15:35 masak yes.
15:35 jeteve :)
15:36 masak the pir:: thing looks like a module, but it's really a kind of interdimensional portal to the underlying VM.
15:37 masak probably these calls will change to use nqp:: as Rakudo starts targeting other VMs.
15:37 jeteve and nqp will do the routing to the correct target
15:39 masak yes, nqp will have a small part that does all the binding to a particular VM.
15:39 masak and the rest of it will be VM-agnostic.
15:41 jeteve cool. Where can I find 'open_PSS' for instance? I'm looking at http://docs.parrot.org/parrot/latest​/html/docs/book/pir/ch08_io.pod.html but can't find it
15:41 * masak goes looking
15:43 masak https://github.com/parrot/parrot/bl​ob/master/src/dynoplibs/io.ops#L220
15:43 masak I was wrong. it's a PMC out, and two strings in.
15:43 masak that makes more sense, actually.
15:44 flussence lemme see if I can guess without looking: that's open(FILE, $filename, $mode)
15:44 masak well, more like open($filename, $mode) --> $filehandle, but yes.
15:45 flussence (somewhere along the line I inadvertently learned how to read pir...)
15:45 masak this is sugared C, though.
15:45 dalek roast: 1833aa5 | (Patrick Abi Salloum)++ | S06-other/main-usage.t:
15:45 dalek roast: Tests for RT #71366
15:45 dalek roast: review: https://github.com/perl6/roast/commit/1833aa57a9
15:45 jeteve all of this looks really neat
15:46 masak oh, and look:
15:46 masak rakudo: say "Rakudo says 'hi, jeteve!'"
15:46 p6eval rakudo 4aa68e: OUTPUT«Rakudo says 'hi, jeteve!'␤»
15:47 masak \o/
15:47 jeteve Yeahhh! Rakudo bot :)
15:47 masak niecza: say "me too!"
15:47 p6eval niecza v3-41-gd85b4f0: OUTPUT«me too!␤»
15:47 masak pugs: say "and me!"
15:47 p6eval pugs: OUTPUT«and me!␤»
15:48 jeteve Thanks all :) I feel a tiny bit less perl6-illiterate now.
15:48 masak hugme: hug jeteve
15:48 * hugme hugs jeteve
15:48 masak :)
15:48 jnthn jeteve: The open__PSS thingies are documented in Parrot's ops codumentation
15:48 jnthn gah
15:48 jnthn documentation
15:48 * masak .oO( "code-umentation" )
15:48 masak it's code that you go "um" over.
15:48 jnthn My typing is a bit fishy after this beer :P
15:48 jeteve codumentation = documentation about code
15:49 dalek rakudo: bd134ec | patrickas++ | src/core/MAIN.pm:
15:49 dalek rakudo: Fix for RT#71366
15:49 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/bd134ec57f
15:49 jeteve alright, I'm off plowing through the perl6 book :)
15:49 jeteve thanks all, spk later!
15:49 masak oki
15:49 masak good luck!
15:49 jnthn jeteve: have fun :)
15:49 patrickas joined #perl6
15:50 masak patrickas! \o/
15:50 patrickas KINGOFZEBRAS! \o/
15:50 masak wait... isn't that tadzik? :)
15:50 patrickas ok then emperor of zebras?
15:51 tadzik am I the king?
15:51 tadzik or, The King?
15:51 masak apart from the fact that having both a king and an emperor might be problematic... ok, I can be Emperor of Zebras.
15:51 masak I gave a talk containing zebras yesterday :P
15:51 patrickas actually the whole zebras mem developed while I was aaway
15:51 masak yeah.
15:52 patrickas so I was kinda not sure of the hierarchy :-)
15:53 patrickas masak: did the talk go well ? is it online somewhere ?
15:53 patrickas it's been almost 24 hours already!
15:53 masak yes, it went pretty well. not yet.
15:53 masak I'm in Yapsi release mode right now, sorry.
15:53 masak it's fairly easy to put the things up, but I don't want the distraction.
15:56 patrickas ok then! all hail the Emperor while he releases Yapsi upon the world!
15:56 masak this release is the greatest yet.
15:56 masak I'm really proud of it.
15:57 tadzik and it has a repl!
15:57 masak tadzik++
15:57 tadzik and it has subs! masak++
15:57 masak \o/
15:57 masak and I have a pretty neat idea for the release announcement :P
15:57 pmurias sorear: ping
15:59 patrickas whoa! you guys have been buzy! masak++ tadzik++ yapsi++
16:00 flussence wtf, I just noticed this regex makes no sense at all... $ts_sized_space = eval "rx/.**$tabstop/";
16:00 flussence and if I change the . to a ' ', it breaks
16:00 tadzik hackathon++
16:02 masak flussence: p6 regexes are free-form.
16:02 masak flussence: so you must quote the ' '. are you doing that?
16:03 flussence yeah, it shouldn't be a . to begin with though...
16:03 flussence I'm rewriting this sub anyway so hopefully that bit of insanity will disappear...
16:04 masak insanity--
16:06 patrickas jnthn++
16:07 flussence (I think I just found a way to replace Text::Tabs::unexpand() with 3-4 lines...)
16:08 flussence (well, more like 7-8)
16:15 flussence oh, I completely misunderstood how this works. never mind...
16:17 * moritz_ wakes up after about 90 minutes of sleep
16:17 moritz_ sleep cycles are for beginners, parents seem to be able to do without... have to... :-)
16:17 Patterner left #perl6
16:17 moritz_ s/cycles/rythm/
16:17 jnthn By upgrading to parent automobiles?
16:18 jnthn s/parent/sleep/
16:18 jnthn gah, pun fail
16:18 moritz_ autosleepiles
16:18 flussence sleep-cycling sounds dangerous
16:18 tadzik oh, moritz_
16:18 tadzik there's a typo in Math::RungeKutta's META.info
16:18 tadzik it's repo-type, not rep-type
16:19 Psyche^ joined #perl6
16:19 Psyche^ is now known as Patterner
16:19 moritz_ fixed.
16:19 tadzik thanks
16:21 patrickas moritz_ I think I fixed the MAIN bug so you should be able to close RT#71366
16:24 icwiener joined #perl6
16:28 tadzik who wants to test a new module manager?
16:29 flussence o/ !
16:31 moritz_ patrickas: that's good news!
16:31 flussence (hm, I might as well try it, this tabs thing can wait)
16:32 tadzik flussence: let me push a bugfix, and you could clone https://github.com/tadzik/Pies
16:32 flussence k
16:33 tadzik oh, it depends on JSON::Tiny and File::Tools
16:33 tadzik which is a tricky part, I should probably add them to a repo
16:34 moritz_ I'm fine with bunding JSON::Tiny with whatever module you want
16:34 flussence (btw, does anyone know if there's a more efficient way to split a string into equal-sized bits than "my @chunks = expand($line).split($tab-sized-chunk, :all);" ?)
16:35 moritz_ flussence: a loop + substr
16:35 tadzik moritz_: bundling where?
16:35 moritz_ tadzik: with your module manager
16:35 tadzik moritz_: yeah, that is necessary probably
16:36 tadzik I wonder what is the Right Way to perform the bootstraping process
16:36 tadzik something like App::Fatpacker would be nice, I even started working on that some time ago
16:37 moritz_ rakudo: my $s = 'abcdefghijk'; say (1, 3 ...^ * >= $s.length).map({$s.substr($_, 2)}.perl
16:37 p6eval rakudo bd134e: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
16:37 moritz_ rakudo: my $s = 'abcdefghijk'; say (1, 3 ...^ * >= $s.length).map({$s.substr($_, 2)}).perl
16:37 p6eval rakudo bd134e: OUTPUT«Method 'length' not found for invocant of class 'Str'␤  in <anon> at line 22:/tmp/862YVjiYVp␤  in 'Block::ACCEPTS' at line 6232:CORE.setting␤  in <anon> at line 896:CORE.setting␤  in 'Any::join' at line 1␤  in 'List::perl' at line 2843:CORE.setting␤  in main program body at
16:37 p6eval ..line 22…
16:37 moritz_ rakudo: my $s = 'abcdefghijk'; say (1, 3 ...^ * >= $s.chars).map({$s.substr($_, 2)}).perl
16:37 p6eval rakudo bd134e: OUTPUT«("bc", "de", "fg", "hi", "jk")␤»
16:37 moritz_ rakudo: my $s = 'abcdefghijkl'; say (1, 3 ...^ * >= $s.chars).map({$s.substr($_, 2)}).perl
16:37 p6eval rakudo bd134e: OUTPUT«("bc", "de", "fg", "hi", "jk", "l")␤»
16:37 moritz_ flussence: see above
16:39 flussence my @chunks = ($expanded.substr($_, $tabstop) for 0, $tabstop ...^ * >= $expanded.chars); # works!
16:39 flussence moritz_++
16:40 masak rakudo: +sub {}
16:40 p6eval rakudo bd134e: OUTPUT«maximum recursion depth exceeded␤  in 'Cool::Numeric' at line 1903:CORE.setting␤  in 'Cool::Numeric' at line 1903:CORE.setting␤  in 'Cool::Num' at line 7532:CORE.setting␤  in 'Cool::Numeric' at line 1903:CORE.setting␤  in 'Cool::Numeric' at line 1903:CORE.setting␤  in
16:40 p6eval ..'Cool::Num' a…
16:40 tadzik oh funny
16:40 * masak submits rakudobug
16:40 masak discovered while thinking about strange situations in Yapsi.
16:51 flussence I like it when I can write commit messages like these :) https://github.com/flussence/​Text-Tabs-Wrap/commit/8ddc0ca
16:52 tadzik cool
16:53 tadzik moritz_: got another pull request for ya
16:53 tadzik json this time
16:55 wooden joined #perl6
16:55 wooden left #perl6
16:55 wooden joined #perl6
16:56 moritz_ hugme: add tadzik to json
16:56 * hugme hugs tadzik. Welcome to json!
16:56 tadzik :)
16:58 tadzik http://goo.gl/goVt3
16:58 _twitch left #perl6
17:00 porter235 joined #perl6
17:01 _twitch joined #perl6
17:01 cibs left #perl6
17:01 cibs joined #perl6
17:03 masak std: my
17:03 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed my at /tmp/tAGXFpRQSX line 1 (EOF):␤------> [32mmy[33m⏏[31m<EOL>[0m␤    expecting scoped declarator␤Parse failed␤FAILED 00:01 118m␤»
17:04 jnthn std: oh my;
17:04 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed my at /tmp/9Avn1y6lEV line 1:␤------> [32moh my[33m⏏[31m;[0m␤    expecting any of:␤    argument list␤  prefix or term␤ scoped declarator␤Parse failed␤FAILED 00:01 119m␤»
17:04 masak std: oh our
17:04 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed our at /tmp/xyhfFbEVwq line 1 (EOF):␤------> [32moh our[33m⏏[31m<EOL>[0m␤    expecting scoped declarator␤Parse failed␤FAILED 00:01 119m␤»
17:05 tadzik std: oh my $god;
17:05 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'oh' used at line 1␤Check failed␤FAILED 00:01 120m␤»
17:05 masak your dollar-god?
17:05 tadzik undeclared :)
17:05 patrickas std: my My $my;
17:05 masak std: class Mammon {}; oh my Mammon
17:05 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤In my declaration, typename 'My' must be predeclared (or marked as declarative with :: prefix) at /tmp/WCF_6fQ_ir line 1:␤------> [32mmy My[33m⏏[31m $my;[0m␤Malformed my at /tmp/WCF_6fQ_ir line 1:␤------> [32mmy My[33m⏏[31m $my;[0m␤
17:05 p6eval ..expecti…
17:05 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Multiple prefix constraints not yet supported at /tmp/UZmZny9BLL line 1 (EOF):␤------> [32mclass Mammon {}; oh my Mammon[33m⏏[31m<EOL>[0m␤Malformed my at /tmp/UZmZny9BLL line 1 (EOF):␤------> [32mclass Mammon {}; oh my
17:05 p6eval ..Mammon[33m⏏[31m<EOL>[0m␤…
17:06 patrickas std: class My{} ; my My $my;
17:06 p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
17:06 masak std: sub sub {}; sub()
17:06 p6eval std 4608239: OUTPUT«ok 00:01 118m␤»
17:06 masak std: sub sub {}; sub(sub sub { sub() })
17:06 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of routine 'sub' (see line 1) at /tmp/fctdoWhI_R line 1:␤------> [32msub sub {}; sub(sub sub[33m⏏[31m { sub() })[0m␤Check failed␤FAILED 00:01 119m␤»
17:07 masak oh right.
17:07 masak std: sub sub {}; sub({sub sub { sub() }})
17:07 p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
17:08 masak rakudo: /:::/
17:08 p6eval rakudo bd134e: OUTPUT«===SORRY!===␤::: not yet implemented at line 22, near "/"␤»
17:08 masak :(
17:08 masak rakudo: /<commit>/
17:08 p6eval rakudo bd134e:  ( no output )
17:09 jnthn std: /:::/
17:09 p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
17:09 masak rakudo: /::/
17:09 p6eval rakudo bd134e: OUTPUT«===SORRY!===␤:: not yet implemented at line 22, near "/"␤»
17:12 leprevost left #perl6
17:13 porter235 left #perl6
17:14 masak how do you panic from within a grammar rule?
17:15 masak do you have to get $/.CURSOR ?
17:15 justatheory joined #perl6
17:16 jnthn $/.CURSOR.panic(...)
17:16 jnthn Or in the grammar itself $c
17:16 jnthn but it's not c it's the cent
17:16 jnthn but I cba to work out how to type it
17:16 masak hm.
17:17 masak Method 'panic' not found for invocant of class 'Yapsi;Perl6;Grammar'
17:17 masak both with self.panic and $/.CURSOR.panic
17:17 jnthn oh
17:17 jnthn maybe that's not something we inherit from cursor?
17:17 moritz_ if I remember correctly, .panic isn't available to the user
17:17 jnthn Yeah, i think it's defined a level lower.
17:17 moritz_ unless you explicitly write your own panic
17:18 masak how do I cause a grammar to fail?
17:18 jnthn (lower in the inehritance hierarchy)
17:18 jnthn panic is more like a die than a fail.
17:18 jnthn so if you want panic style semantics, just die
17:18 masak oh, good idea.
17:18 [Coke] how wude.
17:18 jnthn er, C<die>
17:18 jnthn :P
17:19 masak I got you right the first time, no worries.
17:19 masak :)
17:22 moritz_ masak: http://singularityhub.com/2011/03/05/costs-of-dn​a-sequencing-falling-fast-look-at-these-graphs/
17:22 masak that's excellent news.
17:23 tadzik panda can bootstrap! \o/
17:24 masak tadzik++
17:24 * moritz_ is disappointed it's not called "zebra" :-)
17:24 tadzik hrm
17:25 tadzik that's a serious thing actually
17:25 masak moritz_: maybe tadzik has a sekkrit project called 'zebra' :)
17:25 tadzik but there's another pun. The specification is called Pies, which in Polish is Dog, and the implementation is called Panda, and Panda is the name of my Dog :)
17:26 tadzik anyway, everything interesting is now pushed, so everyone can try if it works for them
17:26 tadzik for it will become the "new neutro" probably
17:28 jeteve left #perl6
17:28 donri Them graphs are not neatly exponential; they just disproved the whole premis of the singularity theory!
17:29 leprevost joined #perl6
17:31 ntel joined #perl6
17:31 patrickas by showing it's coming sooner than we think? The end in near! The end here!
17:31 masak std: END { "here" }
17:31 p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
17:31 masak yup.
17:35 TimToady std: END "here";
17:35 p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
17:35 TimToady it's closer than you think
17:35 masak :)
17:36 sorear good * #perl6
17:36 patrickas o/ sorear
17:36 colomon left #perl6
17:37 colomon joined #perl6
17:38 dalek yapsi: 73785d9 | masak++ | / (2 files):
17:38 dalek yapsi: [Yapsi] implemented subroutine invocation
17:38 dalek yapsi: review: https://github.com/masak/yapsi/commit/73785d99b7
17:38 dalek yapsi: d825429 | masak++ | t/compiler.t:
17:38 dalek yapsi: [t/compiler.t] fixed thinko
17:38 dalek yapsi:
17:38 dalek yapsi: Oh, that's why we were doing so well on the errors. Now there's lots of
17:38 dalek yapsi: tests to fix.
17:38 dalek yapsi: review: https://github.com/masak/yapsi/commit/d82542948d
17:38 dalek yapsi: 6d95f69 | masak++ | / (2 files):
17:38 dalek yapsi: [Yapsi] implemented sub declarations
17:38 dalek yapsi: review: https://github.com/masak/yapsi/commit/6d95f690f5
17:38 dalek yapsi: 745a83a | masak++ | / (2 files):
17:38 dalek yapsi: [Yapsi] enabled call before declaration
17:38 dalek yapsi: review: https://github.com/masak/yapsi/commit/745a83aeb0
17:42 sorear masak: pong
17:42 sorear pmurias: pong
17:42 sorear oh right, I never got around to doing the 3.02 binary yesterday
17:43 masak sorear: I think the reason for my ping might have gone away.
17:43 masak sorear: I'm building Niecza, though.
17:43 rdesfo joined #perl6
17:46 risou joined #perl6
17:50 risou_ left #perl6
17:50 s1n left #perl6
17:50 s1n joined #perl6
17:52 sorear jnthn: hi
17:52 jnthn o/ sorear
17:53 TimToady my new laptop disk seems to be working better than the old one...so far...
17:53 TimToady course, my old one only glitched twice, but in a major way each time
17:53 jnthn One glitch is one too many...
17:53 TimToady I think it didn't like airplanes
17:54 sorear jnthn: if the niecza project produced a separate .dll with the full Perl5-scraped UCD and an implementation of grapheme ropes, how likely would nqpclr use it?
17:54 patrickas left #perl6
17:55 TimToady the new one has 4GB of SSD included so it boots up really fast now
17:55 sorear TimToady: suppose I have a string in NFG or equivalent form.  What do use bytes or use codes mean?
17:56 jnthn sorear: It's not a wheel I'd be inclined to re-invent.
17:56 TimToady it basically means an opaque object unless you tell it how to encode
17:57 TimToady though I suppose we might supply a default encoding with the declaration
17:58 TimToady or a default normalization for the codes case
17:58 TimToady might even be specced that way already, don't remmeber
17:59 TimToady we do want to keep type safety, of course, but automatic conversions are not out of the question if declared
18:00 TimToady and certainly the *runtime* types must keep track accurately
18:02 * TimToady thinks about ropes that know which substrings can be assumed to be pure NFC for efficiency and which substrings contain indirection via NFG
18:03 pmurias sorear: how is the &say from the setting resolved in -e 'say "hello world"
18:03 TimToady how is -e any different from a normal program?
18:03 sorear pmurias: it gets resolved twice, once by STD, once by Niecza
18:04 sorear the STD resolution is responsible for error messages
18:04 pmurias how does niecza resolve it?
18:04 sorear which do you want to know about?
18:04 sorear ok
18:04 TimToady std: say;
18:04 p6eval std 4608239: OUTPUT«Potential difficulties:␤  Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/dcQDVnUAkv line 1:␤------> [32msay[33m⏏[31m;[0m␤ok 00:01 117m␤»
18:04 TimToady you mean that message?
18:04 pmurias the backend part
18:04 sorear No, I mean
18:05 sorear std: sey "Hello, world";
18:05 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'sey' used at line 1␤Check failed␤FAILED 00:01 119m␤»
18:05 pmurias what does scopedlex "&say" find it?
18:06 sorear pmurias: it gets passed to the backend as something like (subcall "\0000" (fetch (scopedlex &say)) (const (box Str (str "Hello, world"))))
18:07 sorear scopedlex uses the sub outer pointers and lexical lists to resolve that into a location
18:07 sorear CLRBackend.cs line 2557 is the resolution function
18:11 pmurias so by following the outer pointers we can find which sub is that lexical defined in
18:11 pmurias that happens at compile time?
18:12 pmurias and at runtime how is the variable fetched?
18:12 sorear yes, yes
18:13 sorear at runtime variable references take one of several forms depending on the particular form of the lexical
18:13 pmurias the 'simple' ones
18:14 sorear for &CORE::say, the reference will be something like CORE.L2__26say.Fetch()
18:14 sorear a static field reference
18:14 sorear that's how 'simple' lexicals work if they are defined in a RUN_ONCE sub
18:15 sorear if they're not, then they are resolved to an (uplevel,index) pair
18:15 sorear say it's (2,5)
18:15 sorear then the referencing operation, again in C# syntax, is curFrame.outer.outer.lex5
18:16 sorear there are only 10 directly accessible lexical slots; if the resolution were (0,13), then it would have to be curFrame.lex[3]
18:16 sorear everything after 10 is spilled to an array
18:16 ymasory joined #perl6
18:17 sorear TimToady: what's the difference between a Buf8 and a Str with minimum and maximum Unicode levels of "bytes"?
18:17 diakopter "the new one has 4GB of SSD included so it boots up really fast now"  !!!!!!!!!!
18:17 diakopter that's, like, a Windows thing
18:19 TimToady sorear: a Buf presents an array interface as well as a string interface
18:21 TimToady but our NFG strings are tending more toward a buf view of +/- integers, so some of the old string specage is a bit suspect
18:21 TimToady not sure I believe much in multi-level strings these days
18:22 Rotwang joined #perl6
18:22 pmurias sorear: why is there a fixed number of lexical slots?
18:22 TimToady the NFG abstraction has somewhat superseded the need for opaque StrPos and such
18:23 mahen23 joined #perl6
18:23 mahen23 perl6 is dead
18:24 TimToady no, it's undead
18:24 mahen23 its an infinite loop
18:24 mahen23 you are not going to finish it
18:24 flussence based on what evidence?
18:24 mahen23 i am going into my 30s and you still have not completeed it
18:24 masak hugme: hug mahen23
18:24 * hugme hugs mahen23
18:24 sorear That is not dead which can eternal lie
18:24 masak mahen23: welcome to #perl6.
18:25 TimToady mahen23: you will have far more years to use Perl 6 than I will :)
18:25 mahen23 why the warm welcome?
18:25 masak mahen23: why the trollish entry? :P
18:25 mahen23 cuz i am fed up of waiting :(
18:25 TimToady so are we!!!!
18:25 masak mahen23: let me tell you something.
18:25 masak mahen23: so am I.
18:25 flussence why would we get angry? we have perl6!
18:25 sorear pmurias: because the recently used frame cache depends on all frames being the same size
18:25 masak mahen23: that's why I'm working on it.
18:26 pmurias sorear: what is the recently used frame cache?
18:26 mahen23 it was first talked about in 2000's and now its 10years later
18:26 masak mahen23: yes.
18:26 TimToady perl6: say "#6 is alive!  Not disassemble!"
18:26 mahen23 why not just release it and then do bug releases
18:26 mahen23 1.0, .1.1, 1.2
18:26 p6eval pugs, rakudo bd134e, niecza v3-41-gd85b4f0: OUTPUT«#6 is alive!  Not disassemble!␤»
18:27 masak mahen23: good news. we are releasing it.
18:27 masak mahen23: all the time.
18:27 masak and we are fixing bugs.
18:27 mahen23 so what version is it now?
18:27 masak I'm sorry you missed all the releases so far.
18:27 masak mahen23: different compilers have different versions.
18:27 masak Rakudo is version 2011.02
18:27 masak Niecza is version v3
18:28 mahen23 i thought it will be released under one name: perl6 ....
18:28 masak you thought wrongly.
18:28 flussence when will c++ be released?!
18:28 tadzik that'll miss the pieng
18:28 tadzik * point
18:28 masak Yapsi is version 2011.02, but I'm working on releasing version 2011.03 right now :)
18:29 masak in fact, I'd say we're really good at releases nowadays.
18:29 mahen23 so there will not be a perl6 release?
18:29 masak all three of those compilers do monthly releases.
18:29 pmurias mahen23: no
18:29 masak mahen23: no, there will not be a Perl 6 release. you said so yourself.
18:29 mahen23 i just died, come to my funeral
18:30 masak rakudo: die
18:30 p6eval rakudo bd134e: OUTPUT«Died␤␤  in main program body at line 22:/tmp/G7NH8z0Q9L␤»
18:30 TimToady at some point we will start versioning test suites though, and the first one will probably be called 6.0.0
18:31 TimToady mahen23: isn't it a little early for you to be having a midlife crisis?
18:32 masak ooh, versioned test suites. that's probably more important than a versioned spec.
18:32 mahen23 so in order to write a simple hello world script, i need to follow all these steps: http://rakudo.org/how-to-get-rakudo
18:32 mahen23 not very novice friendly
18:32 masak mahen23: if you have a suggestion for making the installation easier, let us know.
18:32 TimToady we're targeting early adopters mostly righ tnow
18:32 flussence yep, all five of them! assuming you don't use the distro's package manager.
18:32 masak easier and more novice-friendly.
18:33 mahen23 i am a windows guy
18:33 mahen23 and windows hate git
18:33 TimToady so is jnthn
18:33 jnthn git works just for me on Windows for ages.
18:33 tadzik mahen23: http://try.rakudo.org/ if you are really impatient
18:33 masak you don't need Git for Rakudo.
18:33 masak jnthn: if it works just for you, it won't work for anyone else... :P
18:34 mahen23 yay cool @ tadzik
18:34 jnthn Oh, sorry. I didn't realize I was holding the git on Windows mutex. I'll try to remember to share it a bit :P
18:34 leprevost left #perl6
18:35 sorear step 1. fetch https://github.com/downloads​/sorear/niecza/niecza-2.zip
18:35 sorear step 2. unpack anywhere
18:35 sorear step 3. run "run\Niecza.exe"
18:35 sorear I botched something in the v3 release and it wants a version of .NET that doesn't even exist :/
18:35 sorear v2 should work for now
18:36 masak sorear++
18:36 masak "Niecza: the compiler with the fewest installation steps"
18:38 mahen23 left #perl6
18:40 [Coke] \o/
18:40 masak mahen23: (1) troll, (2) get reasoned replies, (3) get bored
18:41 tadzik he won. He got the attention
18:41 tadzik shame it didn't turn him to the light side of the force though
18:41 masak we won. we hugged someone :)
18:41 flussence he lost, he didn't provoke the reaction he wanted :)
18:41 risou left #perl6
18:42 TimToady doesn't matter whether he won or lost, as long as convergence continues
18:43 masak troo
18:43 masak I think the main concern of the community is not to get bogged down or distracted by trolls.
18:45 TimToady but...we get distracted by *everything* here...
18:45 masak d'oh!
18:46 lue hello world! o/
18:46 diakopter including each other
18:47 masak lue: \o
18:47 * TimToady gets to go and be distracted playing drums now... &
18:47 lue We aren't distracted by trolls. We're distracted by ourselves :)
18:48 masak "it is not the spoon that bends."
18:48 tadzik it's the bends that spoons
18:48 flussence a perfectly flat spoon is pretty useless though
18:48 masak :P
18:48 lue I think they're called spatulas.
18:48 sorear TimToady: if $language requires tailored grapheme clusters, should Str provide o(N) indexing for them?
19:01 MayDaniel left #perl6
19:09 IRSeekBot left #perl6
19:10 porter235 joined #perl6
19:10 dalek nqp/slp: d36a4cd | jonathan++ | / (3 files):
19:10 dalek nqp/slp: Stub in NQPLexInfo and NQPLexPad, which will eventually give static lexpad support.
19:10 dalek nqp/slp: review: https://github.com/perl6/nqp/commit/d36a4cd91e
19:10 dalek nqp/slp: 94fc85c | jonathan++ | src/pmc/nqplexinfo.pmc:
19:10 dalek nqp/slp: Provide a way to set a static value into a lexpad explicitly, and to indicate when all static values are set.
19:10 dalek nqp/slp: review: https://github.com/perl6/nqp/commit/94fc85c354
19:10 dalek nqp/slp: 5c2b972 | jonathan++ | src/pmc/nqplexpad.pmc:
19:10 dalek nqp/slp: Insert static values into a context's registers, thus putting values from the static lex pad in place per invocation.
19:10 dalek nqp/slp: review: https://github.com/perl6/nqp/commit/5c2b972ab2
19:13 tty234_ is now known as tty234
19:14 IRSeekBot joined #perl6
19:15 porter235 left #perl6
19:15 masak just pushed the Yapsi release announcement. comments and suggestions welcome.
19:16 jdhore1 masak, link?
19:17 dalek yapsi: 0cf3d51 | masak++ | doc/announce/2011.03:
19:17 dalek yapsi: [doc/announce/2011.03] added
19:17 dalek yapsi: review: https://github.com/masak/yapsi/commit/0cf3d516c8
19:17 masak there :)
19:18 jdhore1 masak, This is brilliant. I see you're channeling Steve Jobs.
19:19 masak :)
19:19 dalek niecza: 5969e9b | pmurias++ | cl-backend/backend.lisp:
19:19 dalek niecza: [cl-backends] small hacks for running CORE
19:19 dalek niecza: review: https://github.com/sorear/niecza/commit/5969e9bd40
19:19 dalek niecza: e3f2835 | pmurias++ | cl-backend/backend.lisp:
19:19 dalek niecza: [cl-backend] handle sub foo(\$foo) {...}
19:19 dalek niecza: review: https://github.com/sorear/niecza/commit/e3f2835c22
19:19 dalek niecza: 1b8146a | pmurias++ | cl-backend/backend.lisp:
19:20 dalek niecza: [cl-backend] load the setting
19:20 dalek niecza: review: https://github.com/sorear/niecza/commit/1b8146a772
19:20 dalek niecza: 4aa53ab | pmurias++ | cl-backend/ (2 files):
19:20 dalek niecza: [cl-backend] hide annoying messages from quicklisp
19:20 dalek niecza: review: https://github.com/sorear/niecza/commit/4aa53ab57c
19:20 dalek niecza: 7cc8c06 | pmurias++ | simple-tests/ (2 files):
19:20 dalek niecza: add missing files to simple-tests
19:20 dalek niecza: review: https://github.com/sorear/niecza/commit/7cc8c06a03
19:27 colomon_ joined #perl6
19:27 colomon left #perl6
19:27 colomon_ is now known as colomon
19:28 MayDaniel joined #perl6
19:33 pmurias niecza: sub foo {my $counter=0; sub {$counter++;$counter}};my $sub = foo();say $sub;say $sub;
19:33 p6eval niecza v3-46-g7cc8c06: OUTPUT«Sub()<instance>␤Sub()<instance>␤»
19:34 pmurias niecza: sub foo {my $counter=0; sub {$counter++;$counter}};my $sub = foo();say $sub();say $sub();
19:34 p6eval niecza v3-46-g7cc8c06: OUTPUT«1␤2␤»
19:34 pmurias sorear: how does (uplevel,index) pairs work in this case?
19:34 * lue prepares to whack masak's milk with a bat, twice
19:35 lue I got an air of *high* British royalty from that announcement :)
19:35 masak lue: wow, that's what I was aiming for.
19:35 sorear .u _
19:35 phenny U+005F LOW LINE (_)
19:35 masak well, not royalty, but formality.
19:35 * donri lols at the ufo readme, BTW
19:36 donri masak++
19:36 masak heh
19:36 sorear pmurias: $counter is assigned index 1 (0 = $_); the reference in the anonymous sub is to (1,1), thus curFrame.outer.lex1
19:36 sorear pmurias: the sub {} expression uses MakeSub to create a new sub "clone", with a reference to the correct outer
19:39 jdhore1 left #perl6
19:43 jdhore joined #perl6
19:48 dalek yapsi: dc43de2 | masak++ | doc/announce/2011.03:
19:48 dalek yapsi: [doc/announce/2011.03] a few changes
19:48 dalek yapsi: review: https://github.com/masak/yapsi/commit/dc43de2561
19:53 * masak is having "Mu" yoghurt for desert o/
19:53 masak mberends++
20:09 _twitch left #perl6
20:33 imamelia joined #perl6
20:34 imamelia is now known as TheMartianGeek
20:34 TheMartianGeek left #perl6
20:38 lue I shall partake in the fine and formal artistry of "nomming". Good day to you, sirs and madams.
20:38 * masak curtsies
20:39 GinoMan left #perl6
20:39 masak at the hackathon in Vught, we've just partaken in "nomming", and we are currently involved in the fine art of "slacking after dinner".
20:40 dalek yapsi: 3576c66 | masak++ | doc/announce/2011.03:
20:40 dalek yapsi: [doc/announce/2011.03] still more changes
20:40 dalek yapsi: review: https://github.com/masak/yapsi/commit/3576c667a0
20:40 tadzik my code's compiling
20:40 masak \o/
20:40 sorear What are you hackathonning on?
20:41 masak NP :)
20:41 sorear P=?
20:41 tadzik there's a plan to make Rakudo NP-complete. The hard thing is, that's NP-hard
20:41 jnthn Pivo
20:41 masak sorear: no, just the NP
20:41 tadzik No Pivo? /o\
20:42 masak the /o\ figure is really appropriate there.
20:42 masak it looks like someone with his face in his hands.
20:45 tadzik yeah, that was my point
20:46 [Coke] . o O (DUCK!)
20:46 masak [Coke]: indeed. it could also be someone cowering under a bed.
20:50 sorear Who is our TPF wiki liaison?
20:52 * masak has no idea
20:59 diakopter I think it was the creator/maintainer of the wiki software itself
21:00 diakopter the company, I mean
21:01 fhelmberger left #perl6
21:02 IRSeekBot left #perl6
21:02 fhelmberger joined #perl6
21:04 Vlavv_ left #perl6
21:04 IRSeekBot joined #perl6
21:04 Vlavv_ joined #perl6
21:05 s1n left #perl6
21:07 diakopter sorear: building latest niecza with mono 2.10.1 crashed with mono saying "gc: too many heap sections"
21:08 masak bacek: ping
21:08 diakopter sorear: (on cygwin)
21:09 sorear noted.
21:09 dwhipp joined #perl6
21:09 masak haha, I crashed the Parrot GC by playing around with Yapsi :)
21:10 * masak goes to tell #parrot
21:11 porter235 joined #perl6
21:11 diakopter sorear: (but I told it to `make` again and it seems to be proceeding happily along)
21:11 donri why isn't #parrot on freenode :/
21:11 colomon left #perl6
21:11 colomon joined #perl6
21:11 masak donri: historical reasons.
21:11 donri le fail
21:11 sorear donri: why SHOULD it be on freenode?
21:12 donri ó_ó
21:12 donri sorear: because i'm on freenode, duh
21:12 sorear I'm on freenode, magnet, and gimpnet
21:12 flussence probably better for them where they are now, what with all the downtime on freenode lately
21:12 donri i irregularly try to idle other networks but it never sticks
21:13 donri i rarely stick in channels either, but most of them are on freenode
21:13 dwhipp I was reading S02:4546 -- the @list.tree method -- looks like it's not implemented.
21:13 diakopter sorear: it seems to have finished successfuly
21:13 dwhipp Is that part of the spec consistent with current thinking? (should I try implement it?)
21:13 donri i tend to randomly /join channels on demand
21:13 izydor left #perl6
21:14 diakopter sorear: make test succeeded
21:14 sorear dwhipp: it's consistent, but very rarely used
21:14 diakopter sorear: is it supposed to auto-compile the setting twice?
21:14 sorear dwhipp: if you have @list, .tree will do nothing; .tree is only relevant for certain ephemeral weakly-structured objects
21:15 sorear diakopter: no.
21:15 dwhipp rakudo: my @list := 1, 2..3, 4; say @list.tree
21:16 p6eval rakudo bd134e: OUTPUT«Method 'tree' not found for invocant of class 'Parcel'␤  in main program body at line 22:/tmp/e71IjeB3Xy␤»
21:16 masak huh. I've totally missed the part about .tree until now.
21:16 dalek yapsi: 40247d2 | masak++ | / (2 files):
21:16 dalek yapsi: [t] cleaned up the tests
21:16 dalek yapsi:
21:16 dalek yapsi: For the release. Some are actual fixes, some are commentings-out,
21:16 dalek yapsi: but most are fixes to tests that never worked. (do'h!)
21:16 dalek yapsi: review: https://github.com/masak/yapsi/commit/40247d27a9
21:16 diakopter sorear: how would I go about diagnosing why the setting was auto-compiled twice when I ran make test
21:17 sorear diakopter: wait, twice, or three times?
21:17 diakopter twice, it seems, every time I run `make test`
21:17 sorear diakopter: when you ran make, there should have been a setting compilation step mono run/Niecza.exe -C CORE
21:18 sorear oh, hmm
21:18 diakopter where's the cached compiled setting stored
21:18 sorear I guess if the recompilation checker is broken on Win32, then test.pl -> (CORE), (Test.pm6 -> CORE again)
21:18 dwhipp My reason for wanting it was to write a function that does { (1, 2..Inf, 3).grep: * == 4|5 } in finite time
21:19 donri irc sucks anyway, lets code up some psyc infrastructure in p6
21:19 sorear diakopter: obj/CORE.dll and obj/CORE.nam
21:19 sorear diakopter: what does mono run/Niecza.exe -v -c test.pl say?  (nopaste)
21:20 masak dwhipp: what problem is it you're trying to solve that requires you to traverse an infinite supply of values in a finite amount of time?
21:20 diakopter CORE mod-time increased from 1299444347.8756 to 1299444347.8756
21:20 masak dwhipp: also, have you considered changing problem? :P
21:21 * sorear blinks
21:21 diakopter sorear: http://pastebin.com/raw.php?i=xNuuTWq7
21:22 diakopter blinks indeed ;)
21:22 dwhipp There are obviously other ways of doing things -- in fact, I already did. But it seemed like I should be able to manipulate infinite (or even long) lists in the natural way
21:23 kaare_ left #perl6
21:24 izydor joined #perl6
21:25 sorear niecza: for 0..53 -> $i { my $base = 1299444347.875; my $next = $base + (1 / (2**$i)); if $next > $base { say $i; last } }
21:25 p6eval niecza v3-46-g7cc8c06: OUTPUT«0␤»
21:26 sorear niecza: for 0..53 -> $i { my $base = 1299444347.875; my $next = $base + (1 / (2**$i)); if $next !> $base { say $i; last } }
21:26 p6eval niecza v3-46-g7cc8c06: OUTPUT«23␤»
21:26 dalek nqp/slp: 67337e1 | jonathan++ | src/pmc/nqplexinfo.pmc:
21:26 dalek nqp/slp: Add visit, which should in theory mean all the state of this PMC gets serialized.
21:26 dalek nqp/slp: review: https://github.com/perl6/nqp/commit/67337e1f64
21:26 dalek nqp/slp: 4f4fa4f | jonathan++ | src/pmc/nqplex (2 files):
21:26 dalek nqp/slp: Add hll and map directives to NQPLexInfo and NQPLexPad PMCs. Now seems things get serialized as wanted.
21:26 dalek nqp/slp: review: https://github.com/perl6/nqp/commit/4f4fa4f901
21:26 sorear niecza: my $base = 1299444347.875; my $step = 1 / 2**22; say $base; say $base+$step;
21:26 p6eval niecza v3-46-g7cc8c06: OUTPUT«1299444347.875␤1299444347.875␤»
21:27 sorear niecza: my $base = 1299444347.875; my $step = 1 / 2**22; say $base; say $base+$step; say $base == $base+$step
21:27 p6eval niecza v3-46-g7cc8c06: OUTPUT«1299444347.875␤1299444347.875␤Bool::False␤»
21:27 sorear bad CLR, no cookie
21:28 sorear I guess double.ToString() is rounding in a way that changes the value
21:28 sorear the problem doesn't show up on Unix because Unix "only" tracks modification times to the microsecond
21:28 spinclad joined #perl6
21:29 diakopter oh
21:29 diakopter round them both to seconds then
21:30 flussence er, depends on the filesystem I think
21:30 diakopter I mean, the resulting numbers
21:30 flussence (pretty sure ext4 does nanoseconds...)
21:30 masak release announcement now posted to p6l \o/
21:30 masak making a blog post, too.
21:36 porter235 left #perl6
21:36 sorear diakopter: it's worse than that; it means to-json/from-json fails to round-trip
21:36 sorear diakopter: which seems... awful
21:37 diakopter hrm
21:39 diakopter sorear: I guess you could compare their stringifications...
21:40 diakopter icky overhead
21:40 sorear Utterly neglible though
21:41 sorear but, this mechanism is also used for literals
21:42 sorear when you "say 2.1", 2.1 is parsed by the CLR, a Num is plugged into the AST, then gets deparsed into JSON by double.ToString, then back to a double, then back to a string for say
21:42 hudnix left #perl6
21:43 tadzik about JSON::Tiny slowness. If we rip off actions and leave just the grammar, parsing projects.json becomes 8 seconds rather than 28
21:43 jnthn tadzik: Oh!
21:43 jnthn tadzik: That's...very telling.
21:44 tadzik I wonder if those are methods, or method calls themeselves
21:44 sorear masak: I think you do a better job of channelling Ada Lovelace than the Queen
21:45 masak yes, probably. I was aiming for academia, not royalty.
21:45 hudnix joined #perl6
21:45 sorear diakopter: I think the best "quick fix" is a fuzzy match
21:46 masak tadzik: how's the speed with all empty action methods?
21:46 jnthn Good question.
21:46 jnthn Where's the JSON::tiny repo?
21:46 masak that would give us the cost of calling the methods.
21:46 jnthn Which one would hope is tiny.
21:46 masak aye.
21:48 jnthn Foudn it
21:48 jnthn None of the action methods look immediately costly
21:48 masak blog post is up: http://strangelyconsistent.or​g/blog/yapsi-201103-released
21:48 Mowah left #perl6
21:49 Maddingu1 joined #perl6
21:49 * masak switches off Yapsi release mode.
21:49 domidumont1 joined #perl6
21:49 skangas_ joined #perl6
21:50 [particle]1 joined #perl6
21:50 eternaleye__ joined #perl6
21:50 ddima joined #perl6
21:50 perigrin_ joined #perl6
21:51 plobsing joined #perl6
21:51 cottoo joined #perl6
21:51 ribasushi_ joined #perl6
21:51 gabiruh_ joined #perl6
21:51 masak std: $fo#`[I can haz mid-identifier comment?]o
21:51 cxreg joined #perl6
21:51 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $fo is not predeclared at /tmp/14u3jVVNGC line 1:␤------> [32m$fo[33m⏏[31m#`[I can haz mid-identifier comment?]o[0m␤Two terms in a row at /tmp/14u3jVVNGC line 1:␤------> [32m$fo#`[I can haz mid-identifier comment?][33m⏏[31mo[0m␤
21:51 p6eval ..ex…
21:52 masak guess not :)
21:52 jasonmay_ joined #perl6
21:52 ingyfoo joined #perl6
21:52 sorear masak: comments are parsed in <ws>
21:52 ntel_ joined #perl6
21:52 krakan joined #perl6
21:52 masak oh, right.
21:52 ascent___ joined #perl6
21:52 masak I should have known that.
21:52 shabble joined #perl6
21:52 shabble left #perl6
21:52 shabble joined #perl6
21:52 [particle] left #perl6
21:52 tadzik left #perl6
21:52 cxreg2 left #perl6
21:52 breinbaas left #perl6
21:52 lopaway left #perl6
21:52 perigrin left #perl6
21:52 uniejo left #perl6
21:52 revdiablo left #perl6
21:52 cotto left #perl6
21:52 plobsing_ left #perl6
21:52 ddima_ left #perl6
21:52 ribasushi left #perl6
21:52 domidumont left #perl6
21:52 jasonmay left #perl6
21:52 gabiruh left #perl6
21:52 Maddingue left #perl6
21:52 fith left #perl6
21:52 ascent_ left #perl6
21:52 eternaleye_ left #perl6
21:52 chitragupt left #perl6
21:52 krakan_ left #perl6
21:52 skangas left #perl6
21:52 colomon left #perl6
21:52 wooden left #perl6
21:52 ingy left #perl6
21:52 shabble_ left #perl6
21:52 starcoder2 left #perl6
21:52 uniejo joined #perl6
21:52 revdiablo joined #perl6
21:52 ntel left #perl6
21:52 revdiablo left #perl6
21:52 revdiablo joined #perl6
21:52 skangas_ is now known as skangas
21:53 wooden joined #perl6
21:53 wooden left #perl6
21:53 wooden joined #perl6
21:53 dalek yapsi: 06ef258 | masak++ | lib/Yapsi.pm:
21:53 dalek yapsi: [Yapsi] bumped SIC version
21:53 dalek yapsi:
21:53 dalek yapsi: Between releases, the SIC version is always the version number of the
21:53 dalek yapsi: upcoming release.
21:53 dalek yapsi: review: https://github.com/masak/yapsi/commit/06ef258f5d
21:53 diakopter sigh. <netsplits>
21:53 fith joined #perl6
21:53 donri left #perl6
21:53 sorear for a brief moment there we had 242 users.
21:53 sorear I think that's a high.
21:53 diakopter that would be doubles, I'm sure
21:53 tadzik joined #perl6
21:53 lopaway joined #perl6
21:53 starcoder2 joined #perl6
21:53 chitragupt joined #perl6
21:54 donri joined #perl6
21:55 colomon joined #perl6
21:56 diakopter sorear: may I assume you're committing that "quick fix" soon?
21:57 dalek niecza: c416de7 | sorear++ | src/NieczaCompiler.pm6:
21:57 dalek niecza: Use fuzzy matches on times to work around double.ToString() stupidity (diakopter)
21:57 dalek niecza: review: https://github.com/sorear/niecza/commit/c416de77ae
21:57 sorear diakopter: I already have, but git push kept failing
21:57 s1n joined #perl6
21:58 breinbaas joined #perl6
21:59 * diakopter rebuilds :)
21:59 diakopter er
21:59 diakopter CgOp mod-time increased from 1298445741.64411 to 1298445741.64411
22:00 diakopter oh, that's from the downloaded bootstrap
22:00 diakopter nm
22:00 * diakopter waits
22:01 sorear yow
22:01 sorear no wonder your builds take so long :)
22:02 sorear you have to sit through STD and NieczaActions compiling umpteen times
22:02 diakopter right
22:02 diakopter maybe I could fast forward their modtimes
22:03 diakopter (I mean, I know I could technically, I mean maybe it'd work)
22:03 diakopter ah well, I'll just wait; the last one took only 5 min or so
22:03 dalek yapsi: d9f4e1b | masak++ | t/runtime.t:
22:03 dalek yapsi: [t/runtime.t] added failing tests
22:03 dalek yapsi:
22:03 dalek yapsi: For some reason, this doesn't work yet. It dies with the error "Trying
22:03 dalek yapsi: to invoke a non-closure", for no reason immediately obvious to me.
22:03 dalek yapsi: review: https://github.com/masak/yapsi/commit/d9f4e1b022
22:03 sorear what would work would be changing the modtimes for STD.pm6 et al into the past
22:03 diakopter there's the heap sections crash/hang again
22:04 diakopter the heap sections error is actually a windows *popup* Window, of all things
22:04 diakopter from mono
22:04 diakopter with an "OK" button
22:05 diakopter so then I kill the mono.exe which is acing its core (12% system usage) and run make again
22:07 sorear diakopter: "Too many heap sections: Increase MAXHINCR or ..." ?
22:08 colomon left #perl6
22:08 sorear or just "Too many heap sections" ?
22:08 colomon joined #perl6
22:08 diakopter it's   "gc : Too many heap sections"
22:08 diakopter maybe slightly different spacing/capitalization
22:09 sorear diakopter: that error message is internal from the --gc=boehm system.  If you use make RUN_CLR=mono-sgen, you won't get that exact error
22:10 MayDaniel left #perl6
22:10 masak left #perl6
22:10 izydor ./perl6: error while loading shared libraries: libparrot.so.3.0.0: cannot open shared object file: No such file or directory
22:10 MayDaniel joined #perl6
22:11 masak joined #perl6
22:11 tadzik rtype not set -- has anyone seen something like this?
22:12 tadzik I think it's grammars related
22:13 sorear izydor: Did you relocate Parrot or Rakudo after configuring or building?
22:13 diakopter sorear: that wouldn't be the default for mono 2.10.1 ?
22:13 fisted_ is now known as fisted
22:13 sorear diakopter: I thought it would be, but it doesn't seem to be
22:13 diakopter odd
22:13 diakopter maybe they intend it to be, but it's not (but)?
22:14 sorear looking at the boehm sources, it seems that the maximum heap size is a compile time constant
22:14 izydor yes
22:14 izydor the entire rakudo * directory
22:14 tadzik is "make something" in action methods ought to be the last statement?
22:14 jnthn izydor: It's not relocatable.
22:14 jnthn tadzik: No, need not be.
22:15 izydor ok thank you
22:15 masak left #perl6
22:17 moritz_ masak++ # hilarious release announcement
22:17 flussence :( I can't seem to get niecza to build today: lib/CLRBackend.cs(3066,26): error CS0165: Use of unassigned local variable `cpsrt'
22:18 dwhipp left #perl6
22:20 masak joined #perl6
22:20 moritz_ flussence: build wworks fine here (with mono 2.10.1)
22:20 * diakopter too
22:20 moritz_ though there are two regressions in integration/advent2009-day10.t
22:20 diakopter sorear: (that fixed it)
22:21 sorear flussence: what C# compiler are you using?
22:21 flussence mono, 2.8
22:21 flussence 2.8.2 to be specific
22:22 dalek niecza: cbe9ac1 | sorear++ | lib/CLRBackend.cs:
22:22 dalek niecza: Fix uninitialized variable error (flussence++)
22:22 dalek niecza: review: https://github.com/sorear/niecza/commit/cbe9ac1dee
22:22 sorear oops.
22:22 sorear suprised 2.11 didn't catch that.
22:24 flussence (that's interesting, the compilation process seems to be multithreaded...)
22:25 tadzik https://gist.github.com/857788 -- that's where I get these rtype not set error
22:25 tadzik I moved make()s to the back, Justin Case, but that didn't change anything :)
22:25 moritz_ tadzik: did you try to run with --ll-backtrace ?
22:25 diakopter sorear: actually mono for windows doesn't include a mono-sgen
22:26 tadzik moritz_: no, will try
22:26 diakopter (but mono --gc=sgen works of course)
22:26 masak ugh. compiling Niecza uses up all of my VM's memory.
22:27 tadzik http://wklej.org/id/488226/ -- ll-backtrace
22:27 masak it has 1.5Gb allocated, and mono easily slurps about 1Gb.
22:27 flussence yay, niecza can *almost* load Text/Wrap.pm
22:28 flussence (minus the first two lines)
22:29 jnthn tadzik: maybve need parens on the PIR calls.
22:29 Rotwang left #perl6
22:29 * diakopter , now having a working & speedier niecza, can take a look at the TODO
22:30 flussence I've no idea what it's saying when I try it on Text/Tabs.pm though: https://gist.github.com/857792
22:31 moritz_ flussence: hyper unary is probably for things >>++ or so
22:31 moritz_ niecza: my ($a, $b) = (1, 2); ($a, $b)>>++; say $a, $b
22:31 flussence might be the ».subst in there...
22:31 p6eval niecza v3-48-gcbe9ac1: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &hyperunary in mainline␤␤Server stack trace: ␤  at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤  at
22:32 p6eval ..Niecza.CLRBackend.NamProcesso…
22:32 moritz_ hah!
22:32 moritz_ niecza: say <a b>>>.uc
22:32 p6eval niecza v3-48-gcbe9ac1: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &hyperunary in mainline␤␤Server stack trace: ␤  at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤  at
22:32 p6eval ..Niecza.CLRBackend.NamProcesso…
22:32 moritz_ yep, same error
22:33 diakopter niecza: say eval '(sub{ say 4; 6 })()'
22:33 p6eval niecza v3-48-gcbe9ac1: OUTPUT«4␤Any()␤»
22:34 ntel_ left #perl6
22:39 * Tene finally awake
22:39 masak Tene! \o/
22:39 masak niecza: say eval 42
22:40 p6eval niecza v3-48-gcbe9ac1: OUTPUT«Any()␤»
22:40 * masak has Niecza installed now
22:40 masak \o/
22:42 sorear niecza: eval "say 42"
22:42 p6eval niecza v3-48-gcbe9ac1: OUTPUT«42␤»
22:42 masak eval works, but it doesn't return values?
22:42 moritz_ right
22:42 moritz_ niecza: my $x = 3; eval 'say $x'
22:42 p6eval niecza v3-48-gcbe9ac1: OUTPUT«Unhandled exception: Variable $x is not predeclared␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE eval @ 0)␤  at /tmp/aayr0PMa8S line 1 (MAIN mainline @ 2)␤  at /home/p6eval/niecza/lib/CORE.setting line 1261 (CORE C524_ANON @ 2)␤  at
22:42 p6eval ../home/p6eval/niecza/lib/CORE.setting li…
22:43 moritz_ and it's fatal on errors
22:43 masak which is actually kinda nice :)
22:43 moritz_ aye
22:43 masak please spec it.
22:43 moritz_ I much prefer that to checkign $! myself
22:44 sorear it's supposed to return values, but they get changed to Any somewhere, and I haven't gotten around to figuring out why
22:44 sorear niecza: my $*x; eval '$*x = 42'; say $*x
22:45 p6eval niecza v3-48-gcbe9ac1: OUTPUT«42␤»
22:45 masak oh, that explains it. returning values seemed like an easy bit.
22:47 sorear (I'm suprised that worked)
22:48 masak rakudo: my $*x; eval '$*x = 42'; say $*x
22:48 p6eval rakudo bd134e: OUTPUT«42␤»
22:48 masak \o/
22:48 masak pugs: my $*x; eval '$*x = 42'; say $*x
22:48 p6eval pugs: OUTPUT«42␤»
22:48 masak by the way, I plan on attacking contextuals next in Yapsi.
22:49 masak besides all the cleanups I realized I need to do :/
22:49 masak the grammar does a lot of unnecessary backtracking. :(
22:49 masak and it's affecting the FUTURE.
22:50 sorear How insane would I have to be to implement m:P5/.../ using GGE?
22:50 masak GGE doesn't support m:P5.
22:50 flussence so, very
22:50 masak but I don't think it's much work to add that.
22:51 masak the insanity would be in getting GGE to work on Niecza, I think.
22:51 sorear I also wonder just how "G" it would be
22:51 moritz_ masak: are you aware that P5 has completely different capture numbering rules?
22:51 masak though the fact that the test coverage is fairly good might help.
22:51 masak moritz_: yes.
22:52 masak moritz_: pmichaud seems to have thought of that as well :)
22:52 moritz_ alpha: 'abcd' ~~ m:P5/((.)(.))/; say $2
22:52 p6eval alpha : OUTPUT«b␤»
22:52 masak that is, the numbering takes place in methods particular to the p6 regexes. for p5 regexes, you'd just write different methods.
22:53 masak pmichaud++
22:53 masak PGE also does file/path glob matching.
22:53 masak that's the three "languages" it supports.
22:54 dalek nqp: 2e788f6 | jonathan++ | src/ (7 files):
22:54 dalek nqp: Move NQP into a HLL of its own. This is a pre-req for being able to HLL-map things for NQP's use, but will also go a long way to resolving NQP/NQP-rx symbol conflicts.
22:54 dalek nqp: review: https://github.com/perl6/nqp/commit/2e788f6386
22:54 dalek nqp: eb5f068 | jonathan++ | src/NQP/ (2 files):
22:54 dalek nqp: Register NQP as just NQP, not NQP-rx.
22:54 dalek nqp: review: https://github.com/perl6/nqp/commit/eb5f068feb
22:54 dalek nqp: 4c71035 | jonathan++ | t/hll/0 (2 files):
22:54 dalek nqp: Update a couple of tests to track NQP moving to its own HLL namespace.
22:54 dalek nqp: review: https://github.com/perl6/nqp/commit/4c710356c0
22:54 dalek nqp: 3cc2814 | jonathan++ | src/stage0/ (5 files):
22:54 dalek nqp: Update bootstrap.
22:54 dalek nqp: review: https://github.com/perl6/nqp/commit/3cc2814617
22:56 dorlamm joined #perl6
22:57 donri left #perl6
22:58 izydor left #perl6
23:04 tom_tsuruhara left #perl6
23:05 tadzik yay, json parser's a bit faster now
23:05 masak \o/
23:06 tadzik every string method run is like 100 times faster, and there was over 1000 of them when parsing projects.json
23:06 tadzik so instead of terrifyingly slow it's only very slow :)
23:07 * diakopter encounters a .xz file for the first time
23:08 masak tadzik: I could easily see that in a release announcement. :P
23:09 tadzik of R*? :)
23:09 masak "remember last year? well, last year we were ridiculously slow. this year, we're only extremely slow."
23:09 moritz_ tadzik: care to push your changes upstream? :-)
23:09 tadzik moritz_: done
23:09 tadzik ohwait
23:10 tadzik I did something notnice, but I think no one noticed
23:10 masak a push --force?
23:10 tadzik shh!
23:10 tadzik I said no one noticed!
23:10 masak A PUSH --FORCE? :)
23:13 sorear xz is awesome
23:17 aesop_ is now known as aesop
23:17 awwaiid_ left #perl6
23:22 dorlamm left #perl6
23:23 hatsefla1s is now known as hatseflats
23:26 risou joined #perl6
23:27 risou_ joined #perl6
23:30 risou left #perl6
23:32 porter235 joined #perl6
23:33 icwiener left #perl6
23:34 colomon left #perl6
23:34 colomon joined #perl6
23:36 risou_ left #perl6
23:40 porter235 left #perl6
23:41 rdesfo left #perl6
23:46 rdesfo joined #perl6
23:55 diakopter sorear: how do I build a new boot/ such that my recompiles aren't so dern slow
23:55 MayDaniel left #perl6
23:56 fisted_ joined #perl6
23:56 fisted left #perl6
23:56 flatwhatson left #perl6
23:57 diakopter sorear: I mean, it's actually only 1 minute... but that's "slow" :)
23:57 colomon left #perl6
23:59 tadzik moritz_: you around?

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs