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