»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
TimToady we used to do backtracking by throwing exceptions 00:00
sorear We... did?
TimToady yeah, it didn't work out to well :)
that's why we have xact chains now 00:01
sorear I suppose that makes some kind of sense
exceptions cut the stack, which is the spine of the call graph, which could be the spine of a search tree
TimToady most of the time we try to avoid exceptions in P6, because it tends to mess up any kind of parallel processing 00:02
that's why we now have interesting values of "undef" instead
sorear yet we've redefined "return" to be a kind of throw 00:04
00:09 plainhao left 00:10 pnate joined
TimToady sure, but that's mostly to *find* the place we're returning from, and the return parcel doesn't care 00:14
00:15 justatheory joined 00:18 astrojp joined
colomon TimToady: on Match (re S05 changes), shouldn't that be Stringy and Numeric rather than Str and Num? 00:23
TimToady: or should it be both? 00:24
pugssvn r31117 | lwall++ | [S05] some clarifications suggested by sorear++ 00:28
TimToady colomon: dunno what you mean...line number? 00:31
dinner &
colomon I'm looking at r 31116, you made Match do Positional and Associational ... oh, wait, that wasn't your change, wayland did that. 00:32
wayland added method Str() and method Num() to Match, and I'm suggesting they should be Stringy and Numeric. 00:33
colomon could have sworn that was a TimToady patch. Must be hallucinating from lack of sleep again. 00:34
lue .oO[what's happening again, the hallucinating or lack of sleep? :)] 00:36
colomon
.oO(maybe I just think I spent half of last night rocking a feverish toddler)
00:39
jnthn Aww. 00:40
lue :/
jnthn managed to get on top of @stuff today so should have a good chunk of Rakudo hacking time tomorrow. o/
colomon \o/
lue for bless(), does it have to be a hash? i.e. would bless(*, $calar) be ok? 00:41
colomon lue: well, git log confirms that I pushed committed a Rakudo patch at 5:12 am local time... 00:42
lue
.oO(According to the git record, the defendant did not pushed a commit at 7:00 Tuesday morning. Therefore, he did not commit the crime!)
00:43
.oO(But Crime::Murder was commited by the defendant at 7:15, according to its git record!)
00:44
00:45 skids left
lue do you have to pass a hash on to bless()? The spec seems to say so... 00:46
dalek ok: 07fd0ad | chromatic++ | src/subs-n-sigs.pod:
Edited chapter, leaving a couple of author notes.
colomon lue: I'm no expert on bless, but... errr.... no? 00:48
lue OK. [I feel like desiging P6 tshirts, this makes the pun a bit easier] :) 00:49
colomon self.bless(*, :numerator($numerator), :denominator($denominator));
for instance.
Tene writes Perl 6 code for the first time in months.
colomon you might have to pass named pairs, if you want members to be initialized... 00:50
ash___ colomon: don't hashes get flattened into kw slurps?
colomon ash___: I think so, but you don't have to pass a hash (which is what lue asked) 00:51
ash___ yeah, but functionally a hash is equivalent to named params in this case, i think? that could be way wrong... 00:52
colomon the named arguments go into a slurpy hash in the bless implementation, I think. 00:53
jnthn I believe so, yes.
ash___: If you put a hash there you need to | it
00:54 patspam left
jnthn ash___: Otherwise it'll get passed as a positional parameter, which will be no use at all. :-) 00:54
colomon jnthn++
ash___ thanks for the info jnthn++
jnthn is impressed that RT is still at 614 tickets - we seem to be clearing some up as well as the new ones being opened. 00:56
I'm hoping to make a little dent tomorrow too :-)
Where "tomorrow" = after sleep :-)
00:57 patspam joined
lue so bless(*, $you) should be all right? 00:59
g'night jnthn o/
colomon lue: If I understand jnthn correctly, I don't think $you will do anything, so I guess it's all right. :) 01:00
lue :D I smell pun in that last statement colomon.
jnthn lue: Oh, I didn't say I was sleeping yet. :-) 01:01
colomon I'm too tired to pun intentionally.
jnthn lue: I'm too awake.
lue: But not awake enough to code.
And, well, I wrote enough code today. :-)
colomon I think I'm going to make an amaretto sour, since I have neither whisky nor cider in the house.
lue
.oO( I've heard about this. It's like limbo, but for coders. I think it's called 'end-user' :) )
01:02
colomon oh bother, I can't actually afford the calories in a drink. :( 01:03
jnthn :(
colomon stupid lack of exercise. I need to do something about that. 01:04
jnthn knows the problem all too well
Though there are more walking opportunities around where I live now once I do get outside.
lue
.oO(I exercise my typing fingers all day. I don't get why I'm not getting results)
01:05
colomon it's kind of where being a father has hit me the hardest. there has been nothing resembling a regular schedule in our house for the last 21 months.
lue
.oO(And an aerobic brain workout too, not to mention :) )
jnthn colomon: At least you have a good reason. :-) 01:06
I could certainly get out and walk a bunch more than I do.
Thing is, I really like to do it as well once I get going. 01:07
01:08 bacek left
colomon I loved walking the dog first thing in the morning and then nordic tracking before lunch. that was a good schedule.... 01:10
01:18 plobsing joined 01:21 masonkramer left, masonkramer joined
lue afk # and then making some more merchandise! 01:23
01:26 rgrau left
masonkramer has anyone figured out how to type «» hyperators on a mac by pressing ⌥< && ⌥> ? 01:43
ash___ «» 01:44
« = alt + |
» = alt + | + shift (thats a bar btw) 01:45
masonkramer oh, that's useful
I'd rather have them on <>, but I guess it would be easier to acustom myself to the default
thanks
it beats the heck out of the character pallette 01:46
palette
ash___ also useful is changing input modes to Unicode Hex Input 01:52
then you can give the hex of the unicode thing you want to input
so if you remember the unicode hex of the thing you want you can get to it real fast
01:56 skids joined 02:21 ashleydev left 02:33 patspam left 02:34 jaldhar joined 02:36 gbacon joined
sorear lue: bless doesn't actually do anything in rakudo currently 02:37
02:38 xinming_ joined 02:40 alester joined 02:41 xinming left 02:45 satyavvd joined 02:47 xabbu42 left
pugssvn r31118 | allbery_b++ | [S05] typo 02:52
allbery_b I was amazed I still had my password...
02:57 satyavvd left 03:08 ashleydev_ joined 03:13 TiMBuS joined 03:19 plainhao joined
sorear starts trying to implement viv --emit-psq 03:19
lue sorear: oh. well, that's interesting. Guess rakudo's not up to sainthood yet :P 03:27
allbery_b <badtaste>hasn't had enough little boys yet</badtaste> 03:34
lue I suppose that's a good thing though. To be a saint, you'd have to be dead for 5 years... 03:36
(on a related note, how long since the pugs project 'died' ?)
diakopter sorear: !!!! 03:41
sweet!
sorear: just make up whatever API you need
name it well, and I'll know how to implement the API properly. 03:42
I'm not saying I'm not available to help design it, though
03:44 meppl left
diakopter sorear: if you svn co the perlesque repo, make sure to get r316 and not the latest 03:45
(I really should revert it...)
but, alas, afk&
dalek ok: b3a2e1c | util++ | src/roles.pod:
Fixed two bad POD keywords for programlisting sections - s/=being/=begin/
03:48
ok: 190bf45 | util++ | src/subs-n-sigs.pod:
Fixed missing closing brace in code example
03:54
sorear diakopter: where is the perlesque repo? 03:59
04:04 gbacon left
dalek ok: 288b3d2 | util++ | src/subs-n-sigs.pod:
Changed approximation of "e" to exact value in code example
04:06
04:07 stephenlb left
mberends sorear: perlesque resides in a subtree of code.google.com/p/csmeta/ 04:09
afk & 04:10
04:12 ash___ left 04:19 Guest75571 left
sorear thanks 04:21
rakudo: {say"$_({.perl})"}("\{say\"\$_(\{.perl\})\"\}") 04:22
p6eval rakudo 7c83e6: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
04:25 astrojp left
allbery_b doesn't quite quine yet, I guess 04:26
sorear I probably just screwed up the quoting, somewhere 04:28
rakudo: say "$_"
p6eval rakudo 7c83e6: OUTPUT«Any()␤»
sorear rakudo: say "$_()"
p6eval rakudo 7c83e6: OUTPUT«invoke() not implemented in class 'Any'␤ in main program body at line 11:/tmp/Ww7wgNTdaJ␤»
lue rakudo: {say "$_({.perl})"}("\{say \"\$_(\{.perl\})\"\}") 04:29
p6eval rakudo 7c83e6: OUTPUT«invoke() not implemented in class 'Perl6Str'␤ in <anon> at line 11:/tmp/jxpRMpKZTk␤ in main program body at line 11:/tmp/jxpRMpKZTk␤»
sorear rakudo: say $_."({.perl})"
p6eval rakudo 7c83e6: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments at line 11, near ""␤»
sorear rakudo: say $_~"({.perl})"
p6eval rakudo 7c83e6: OUTPUT«Any()(Any)␤»
sorear rakudo: {say $_~"({.perl})"}('{say $_~"({.perl})"}')
p6eval rakudo 7c83e6: OUTPUT«{say $_~"({.perl})"}("\{say \$_~\"(\{.perl})\"}")␤»
sorear rakudo: {say $_~"({.perl})"}("\{say \$_~\"(\{.perl})\"}") 04:30
p6eval rakudo 7c83e6: OUTPUT«{say $_~"({.perl})"}("\{say \$_~\"(\{.perl})\"}")␤»
04:34 wasy_ joined
lue hrrm... why couldn't I call slurp on a Str, like so: $tring.slurp() 04:34
ashleydev_ sorear: what are you working on? I've seen your name pop up a lot in the irclog lately but I haven't taken much time to see what's really been going on lately around perl6... 04:35
04:36 wasy_ is now known as wasy
allbery_b spectests his first ever rakudo build. (yeh, I'm slow) 04:38
colomon lue: what do you think slurp on a string would do?
sorear ashleydev_: en.wikipedia.org/wiki/Quine_(computing) 04:39
Or do you mean longer ago
allbery_b the quinetessence of perl 6 04:40
ashleydev_ I think I saw you doing a bit with STD
sorear ah, yes 04:41
yeah, I'm working on the STD ecosystem 04:42
I recently wrote a summary of exactly what that is
ashleydev_ yay, link?
lue I thought it would DWIM and use the string as a path/filename :)
sorear looking
pugs svnweb is slow
perlcabal.org/svn/pugs/view/src/perl6/README 04:44
lue [again, in the strange urge to create P6 merchandise, the latest pun is $drink.slurp();]
allbery_b slurpee arrays? 04:47
hm, a slurpy array thingy involving @slurpee...
colomon lue: you can do slurp($drink) 04:49
lue I know, that's what I did.
It's perfect for a coffee mug :)
04:50 envi^home joined
colomon my guess is $drink.slurp isn't there because it feels odd to put file commands in the string class 04:51
04:51 kaare joined 04:52 kaare is now known as Guest24348
lue Yeah, I see that. 04:53
allbery_b trying to figure out the relationship between strings and pathnames seems to be a common modern language/library issue
colomon I think p6 is moving in the direction of having an IO class which can be constructed from a string. 04:55
lue hows about this: when you say $tring.slurp(), slurp() treats it as a string containing a filename w/ relative path [more]
if it can't be found, a warning is issued, and everything continues. 04:56
colomon so in the long run, something like $drink.IO.sluro will probably work
lue colomon: ooh, that's better.
.oO( dwim($drink.slurp()) )
04:57
lue ponders the meanness of a compiler giving ID-10T and PEBKAC errors, especially in parsefails 04:59
allbery_b like sudo insults mode? 05:03
05:04 wasy_ joined 05:06 wasy left, wasy_ is now known as wasy
dalek ok: 9eacc6b | util++ | README:
Fixed typo in distro name - s/Ununtu/Ubuntu/
05:07
ok: c88e280 | util++ | src/subs-n-sigs.pod:
Fixed missing ";" in code example
lue ===SORRY!=== Expected `;', got `\n'. Error Code: ID-10T # something like that :)
[the book update above is pure coincidence, I swear!] 05:08
05:09 eternaleye joined
pugssvn r31119 | sorear++ | [viv] A start at documentation 05:11
05:12 synth joined 05:14 __2synth left
colomon afk # turning over toddler rocking to my wife for a few hours 05:15
05:25 pragma_ left, pragma_ joined 05:26 pragma_ is now known as pbot3, pbot3 is now known as pbot 05:27 pbot left, pbot joined, pbot is now known as pragma_
sorear pragma_: help 05:30
pragma_ sorear: hi.
sorear oh, sorry, I took the /bot/ in your cloak literally
05:31 pragma_ left, pragma_ joined
pragma_ What bot? 05:31
Oh, did it show a changing host message when I changed nicks too? 05:32
sorear yes
22:25 -!- pragma_ [~pragma@unaffiliated/pragma/bot/candide/x-109842] has joined #perl6
pragma_ It should send the changing host message to the user too, so they know about it happening :/
sorear it has since been removed.
pragma_ Yeah, I quickly identified to nickserv as the pot so I could group the pbot3 nick with its account. 05:33
sorear Aha.
What does pbot do, then?
05:34 shrub joined
pragma_ It's mostly a factoid bot. 05:34
sorear For #perl6 or elsewhere?
pragma_ elsewhere, I'm afraid.
But it's written in Perl...5! 05:35
sorear I think ~75% of IRC bots are
pragma_ I didn't really mean to bring attention to it by the nick spam.
sorear it's a suprisingly good language for the task
TiMBuS i have a bot written i nperl 6 05:36
it doesnt work on rakudo head or id make it join here :(
pragma_ www.iso-9899.info/wiki/Candide
05:37 dju_ joined 05:38 justatheory left
sorear mmm. 05:40
TiMBuS: does it work on rakudo alpha?
05:40 dju_ left
TiMBuS sorear, yes it does 05:41
the regexes are broken in ng and im waay too lazy to do any kind of manual string manipulation 05:42
05:44 alester left
TiMBuS does rakudo have a working threading implementation? if so, i could work on adding some useful modules while i wait for a fix 05:45
sorear define "broken" 05:54
there have been major changes to master regex handling in the last 2 days 05:55
(and no, no threads)
diakopter sorear: how can I help you with emit-psq 06:03
06:04 rgrau joined
sorear I want to break ground on a second target, so I can see how viv works in a multi-targetted context; this is why I'm trying to design emit-psq 06:10
diakopter :)
(yay)
moritz_ good morning
diakopter moritz_: hi :)
sorear to this end, I need to 1. get perlesque installed 2. study how it works 3. mediate between diakopter and TimToady to find the perfect compromise level of functionality for viv 06:11
(also I just got sidetracked)
diakopter ho ho ho; this will be fun! 06:12
rgrau moritz_: morning
diakopter hrm; I probably should make perlesque HEAD build again
sorear wonders whether to preemptively apply for a csmeta commitbit 06:13
What's the difference between the Sprixel in csmeta and the Sprixel in pugs? 06:14
diakopter lolz. the sprixel in pugs is in/for JS 06:15
the sprixel in csmeta is for CLR
the sprixel in pugs can be svn rm, imho
sorear did you write it?
diakopter yes :P
it tried to interpret the yaml ast from std directly, single-pass 06:16
sorear yeaaaghh
you do not want to touch that yaml
diakopter well, not the yaml :0 ToJS.pm
see ToJS.pm
in src/perl6
it's a JS emitter for Perl objects 06:17
not JSON, since JSON can't handle cyclical/recursive/multiple references
lue tomorrow, I shall finish up on my P6 merchandise. But for now, afk.
sorear as far as I am concerned, the YAML output from viv is only good for debugging
have you heard of JSPON?
diakopter no 06:18
sorear it's an extension of JSON that handles anchors
diakopter oh look, I invented it
sorear it's being standardized by some ORM/object persistence people
oh
diakopter heh, not really
but my system does the same sortof thing
dalek meta: r318 | diakopter++ | trunk/Sprixel/ (10 files):
[perlesque] a known working state, I think. still lots of dead/wip C#
diakopter it uses the perl ref "address" as the obj id
sorear: actually I'd already added you to csmeta, preemptively 06:19
I think
maybe not
which goog account do you want added 06:20
sorear let me try to find out if I *have* a goog account... :/
google code seems to think my email address is a valid username 06:21
in-use
diakopter hm 06:24
06:24 Maddingu1 joined, Maddingue left
sorear I suppose I should check if my password is any good 06:25
yepp 06:26
diakopter I *thought* I emailed you b4
sorear trawl github
next step: read the csmeta docs 06:28
diakopter har
they're minimal/out-of-date
sorear What's the deal with Sprixel/Microsoft/* ? 06:29
diakopter what do you mean "What's the deal with"? 06:30
sorear Why is there a big chunk of MS-copyright code in Sprixel?
diakopter they're great libraries
see the redistribution license they're released under 06:31
MS-PL
essentially Apache-ish
sorear yes, but why are they bundled?
diakopter closer to BSD though
why not?
how else would they be obtained 06:32
sorear because I've never used .NET before and I have no idea how much its automatic dependency installation system does or doesn't suck
I'm spoiled by CPAN, ok
diakopter "automatic dependency installation system" "what's that?" ;)
let's be clear; .NET is Microsoft's CLR; you'll likely use Mono, Novell's CLR 06:33
CLR is the runtime, CLI is the "standard" (Common Language Infrastructure)
CIL is the instruction set 06:34
CLS is the Common Language Spec
CTS is the Common Type System
sorear Ah, I had it backwards
I thought .NET was the spec and CLR was the Microsoft implementation 06:35
moritz_ phenny: telly colomon that his last rakudo patch caused a failure in S02-builtin_data_types/hash.t
diakopter Passed 780/815, 95.71%
real 22m6.107s 06:36
that's 'make snaptest' after 'make clean'
06:36 IllvilJa left
sorear Is mono-complete the package I want? (Debian) 06:37
diakopter no, unfortunately for debian you need mono 2.6.4 06:38
sorear 2.6.4 exactly?
diakopter or later
but it's the latest 06:39
it takes a long time to build 06:40
it bootstraps... many times.
save the make output; it's interesting
sorear note that my computer is approximately three and a half times slower than yours 06:41
I'm having trouble finding mono 2.6.4
diakopter ftp.novell.com/pub/mono/sources/mon....4.tar.bz2
sorear mono-project.com is offering me lots of ways to download 1.x
06:41 rgrau left
sorear which probably won't work 06:41
ah, there it is 06:42
diakopter (see the link above)
sorear thanks
do I want any of the other files?
diakopter which other files
in that dir? 06:43
it took about an hour to build mono on that computer, iirc
so 3.5 of hotness for you I guess 06:44
hm, maybe not an hour. at least a half hour.
it was a while ago.
sorear heh. I've seen far worse 06:46
the three-stage bootstrap of GHC kept on for a good seven hours
(Rakudo 2010.03 took longer, but it was using 800% of available memory and thus didn't satisfy "hotness") 06:47
Tene phenny: tell masak to check for commits in web
phenny Tene: I'll pass that on when masak is around.
diakopter I'd suggest waiting until late morning tomorrow (after I sleep and tidy a bunch of things up in the perlesque repo tomorrow morning) before tackling perlesque
I wouldn't want you to get discouraged too quickly by all the mess 06:48
sorear by the time mono finishes compiling, I'll be asleep
by the time I wake up, it'll be late morning EST
diakopter ok; I'm in PDT
sleep&
06:53 jaldhar left, jaldhar joined 07:00 masonkramer_ joined 07:01 ingy left 07:07 Ross joined 07:13 [mark] joined
shrub hello perlers 07:13
I may have found a bug in rakudo
came here to see if it's known
./perl6 -e 'say "" .. ""' 07:14
07:14 Ross left
shrub or " " .. " " 07:14
runs out of memory
sorear hello shrub 07:23
shrub hi
sorear I'm not sure if that's a bug
shrub ok
sorear rakudo: ("" .. "").WHAT.say
p6eval rakudo 7c83e6: OUTPUT«Range()␤»
sorear rakudo: ("" .. "").batch(10).Str,say
p6eval rakudo 7c83e6: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤ in main program body at line 11:/tmp/Tp2JvZJAKD␤»
sorear rakudo: ("" .. "").batch(10).Str.say
p6eval rakudo 7c83e6: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤ in main program body at line 11:/tmp/f9Q1qtkG9g␤» 07:24
sorear rakudo: ("" .. "").^methods.Str.say
p6eval rakudo 7c83e6: OUTPUT«excludes_min excludes_max ACCEPTS to min max fmt iterator new bounds perl from Int list Num eager elems Seq Str ucfirst substr log10 tan cos bytes fmt pred acosec sinh Numeric asinh cosech trim asec trim-leading chr acotanh floor sech asech rand truncate round sqrt asin split
..exp c…
sorear rakudo: ("" .. "").^methods(:local).Str.say
p6eval rakudo 7c83e6: OUTPUT«excludes_min excludes_max ACCEPTS to min max fmt iterator new bounds perl from␤»
sorear rakudo: ("" .. "").iterator.batch(10).Str.say
p6eval rakudo 7c83e6: OUTPUT« ␤»
sorear rakudo: ("" .. "").iterator.batch(10).perl.say
p6eval rakudo 7c83e6: OUTPUT«("", "", "", "", "", "", "", "", "", "")␤»
sorear there are 2 issues here
1 is that ("" .. "") is producing an infinite list 07:25
this may or may not be correct; I'd need to double-check the spec
shrub aha
sorear 2 is that "say" doesn't handle infinite lists correctly
this is a known issue, being worked on by pmichaud++
shrub I see
well actutally I ran into the problem when my program issues 07:26
" " .. " "
out of some computed values
that hung and ran out of memory too
I discovered the empty string version when experimenting
What should " " .. " " return?
In perl 5 it returns " " 07:27
TiMBuS id wager that's what it should be
shrub That's what I expected it to be... I solved it by detecting in advance and just using " " myself 07:28
This didn't happen for "A" .. "A", etc...
TiMBuS also sorear, re: the broken regexes. it seems they don't capture properly
sorry for the late reply
i found a bug on the rt about it though 07:29
sorear shrub: As far as I can tell, S03 has nothing to say on that matter. 07:31
07:32 yinyin joined
sorear TimToady: What should " " .. " " do? In Rakudo it returns " " xx * 07:32
shrub ok
07:32 Ross joined
shrub well it certainly surprised me, a complete newbie to Perl 6 ;-) 07:33
sorear there's a well-observed phenomenon that DWIM languages, when they fail, fail hard 07:34
07:35 yinyin left
shrub hehe... yes well I've worked around it in my code (which was only messing about anyway) but just wondered if I should submit a bug report. 07:36
moritz_ please do 07:44
mailto:rakudobug@perl.org
shrub ok I will do... thanks
Ok. bug report sent. Thanks for your help. 07:53
07:58 shrub left 08:16 plobsing left
eternaleye rakudo: my $foo = -> $x { leave( $x + 10 ) }; say $foo.(5); 08:26
p6eval rakudo 7c83e6: OUTPUT«Could not find sub &leave␤ in <anon> at line 11:/tmp/zGHjN98bee␤ in main program body at line 11:/tmp/zGHjN98bee␤»
eternaleye I find that my biggest ponies are somewhat surprising. 'leave()' and Whatever currying, the first because it simplifies lambdas so, the latter because I got used to it on alpha 08:27
sorear we have whatever currying right now ... 08:32
rakudo: (* * *)(2,3).say
p6eval rakudo 7c83e6: OUTPUT«6␤»
moritz_ we have partial whatever-currying 08:36
rakudo: say (3 + * * 4).(2) 08:37
p6eval rakudo 7c83e6: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤ in 'Cool::Numeric' at line 1538:CORE.setting␤ in 'Cool::Numeric' at line 1539:CORE.setting␤ in 'infix:<+>' at line 5466:CORE.setting␤ in main program body at line 11:/tmp/25xL4CGb7N␤»
08:54 Su-Shee joined
szabgab I am writing my Perl 6 slide for LinuxTag 08:57
what shall I say date wise about Rakudo * ?
June ?
"any day now" ?
08:58 Maddingu1 is now known as Maddingue 09:06 ejs joined 09:07 meppl joined 09:15 ejs left
cognominal *-day? 09:16
09:24 finanalyst joined
finanalyst sorear: I am having a problem with STD.pm, which is used in Padre for syntax checking. Could you help? 09:25
09:29 masonkramer_ left 09:37 azert0x joined 09:45 ejs joined 09:52 pmurias joined
pmurias hi 09:53
finanalyst pmurias: hi
do you have any experience with STD.pm? 09:54
pmurias mildew uses STD 09:56
so yes
finanalyst: why do you ask? 10:01
finanalyst pmurias: trying to get Padre to highlight perl6 programs properly.
Padre works unless there are modules 10:02
STD.pm cant find the modules
szabgab oh I just thought you might need to configure PERL6LIB before you start Padre
10:03 BrowserUk joined
finanalyst szabgab: will try that. did not occur to me as Rakudo was picking up the modules as installed 10:03
szabgab just a guess, I am not sure
pugssvn r31120 | pmurias++ | [mildew] dumping more things works 10:05
10:07 BrowserUk left 10:11 Woody2143 left 10:23 ejs left, ejs joined, patrickas joined
patrickas morning 10:23
moritz_: I think the tests in hash.t are to blame and not colomon's patch 10:24
10:26 kensanata joined 10:39 xabbu42 joined 10:48 agentzh joined
finanalyst how do I get STD? Is it a git file? 10:54
10:55 ejs left 10:58 linguist joined
finanalyst moritz_: I'm trying to get hold of STD. How do I get it? Cant find any documentation. 10:59
11:02 linguist left
colomon finanalyst: it's in the old pugs archive 11:03
finanalyst colomon: thanx. I was looking at it thru the web interface, but the repository seems to have changed 11:04
is it still in an svn repository? 11:05
colomon svn.pugscode.org/pugs/src/perl6
is the directory
11:06 pmurias left
finanalyst ok i think i am getting a handle on this. I had forgotten how to do it. 11:06
an addition to the README on how to get just STD might be good 11:07
11:09 gbacon joined, jaldhar left, jaldhar joined 11:10 Woody2143 joined, patrickas_ joined
patrickas_ colomon: is there a reason why in Any-list.pm we have proto sub first(Mu $test, @values) instead of proto sub first(Mu $test, *@values) ? 11:11
11:11 patrickas left, patrickas_ is now known as patrickas
colomon patrickas_: same deal as map was. almost certainly should be changed. 11:11
patrickas I guess someone should check all the protos at the end of the file and fix all of them 11:12
11:13 [mark] left
moritz_ patrickas: re hash and map, I'd like to get some spec clarification on that 11:14
patrickas moritz_ there was a discussion about it yesterday before colomon applied the patch 11:15
let me check the backlog
moritz_ ok, I'll backlog too 11:16
patrickas irclog.perlgeek.de/perl6/2010-06-04#i_2403549
moritz_ %hash would flatten, but $hash wouldn't # what TimToady++ said 11:18
the tests uses %hash, not { ... }
so according to $larry, the test is correct 11:19
patrickas Yes the test was added after colomon's patch and larry's explanation
unless I am confused about it which is not unlikely
moritz_: currently two tests are failing and one is passing right ? 11:22
rakudo: use Test; my %flattens= ("a"=> 1 , "b"=>2); is( (map { .WHAT } , %flattens).join(' ') , 'Pair() Pair()' , 'Flattening Hashes become Pairs when passed to map'); 11:24
p6eval rakudo 7c83e6: OUTPUT«ok 1 - Flattening Hashes become Pairs when passed to map␤»
patrickas This behaviour is as expected 11:25
rakudo: use Test; is( (map { .WHAT } , {"a"=> 1 , "b"=>2}).join(' ') , 'Hash()' , 'Non flattening Hashes do not become Pairs when passed to map');
p6eval rakudo 7c83e6: OUTPUT«not ok 1 - Non flattening Hashes do not become Pairs when passed to map␤# got: "Pair() Pair()"␤# expected: "Hash()"␤»
patrickas This is a bug in rakudo, but was there before colomon's patch (I think)
It was just wrongly tested, untill TimToady explained how the correct behaviour should be 11:26
11:32 whiteknight joined
moritz_ I'm confused - I thought my local test failures were just the other way round 11:34
patrickas what you're right! 11:36
I am getting the same locally, though not through p6eval 11:37
when was the bot last built?
when has bot last built rakudo?
i just built now to check the issue
I am confused too, now i can't remember if yesterday I built before or after colomon's patch 11:40
moritz_ rakudo: say 1 11:41
p6eval rakudo 7c83e6: OUTPUT«1␤»
moritz_ that's the hash of colomon++'s commit
patrickas I guess you are right... colomon's commit did fix the issue it was supposed to dix, but it messed up the flattening hash case 11:50
but at the time of his commit the test was wrong anyway that's why he didn't notice the problem 11:51
11:52 kensanata left
patrickas and when I added the right tests I did not notice their behaviour was wrong because I had apparently built before pulling colomon's patch 11:52
it all makes sense now and you were right all along :-)
colomon wait, it doesn't make any sense at all.
why does use Test; is( (map { .WHAT } , {"a"=> 1 , "b"=>2}).join(' ') , 'Hash()' , 'Non flattening Hashes do not become Pairs when passed to map') work on my local build and fail on p6eval? 11:53
patrickas apparently p6eval does not contain your patch 11:54
colomon according to the version number, it does contain my patch.
patrickas oh!
how do I get the version of p6eval ? 11:55
moritz_ it's in the output 11:56
rakudo 7c83e6: OUTPUT ...
the 7c83e6 is the abbreviated commit hash
patrickas oh ok
colomon oh, it doesn't contain my patch
!
7c83e65fb2cda0ddd85e6abe98b18ee7da4a465f is the hash for the patch in question.
no, wait, it does.
right, so 7c83e6 is the short version of 7c83e65fb2cda0ddd85e6abe98b18ee7da4a465f 11:57
which is the commit "Switch sub version of map to take slurpy values"
patrickas strange! 11:58
is it possible rakudo version ?
has somethign to do with it ?
I did --gen-parrot before building
colomon I'm also baffled by the logic that %a should flatten here, though that does seem to be what TimToady said. 11:59
moritz_ % and @ are flattening sigils
patrickas s/rakudo version/parrot version/
colomon moritz_: but they don't flatten normally in sub binding, do they? 12:00
rakudo: sub foo($a, $b) { say $a ~ $b; }; my @a = 'a', 'b'; say ~@a; foo(@a) # don't expect last bit to work
p6eval rakudo 7c83e6: OUTPUT«a b␤Not enough positional parameters passed; got 1 but expected 2␤ in 'foo' at line 11:/tmp/OecqJ9vcfg␤ in main program body at line 11:/tmp/OecqJ9vcfg␤»
moritz_ colomon: only into slurpy paramters 12:01
colomon moritz_: then it's a dispatch bug?
moritz_ rakudo: sub f(*@a) { say @a.perl }; my @b = 2, 4; say f @b; # I expect that to work
p6eval rakudo 7c83e6: OUTPUT«[2, 4]␤1␤»
moritz_ rakudo: sub f(*@a) { say @a.perl }; my %b = a => 2, b => 44; f %b; # I expect that to work 12:02
p6eval rakudo 7c83e6: OUTPUT«[{"a" => 2, "b" => 44}]␤»
moritz_ it doesn't flatten
and i think it should
anyway, the build log on p6eval shows no signs of strangeness 12:03
patrickas but wasn't p6eval still flattening a few minutes ago ?
rakudo: use Test; my %flattens= ("a"=> 1 , "b"=>2); is( (map { .WHAT } , %flattens).join(' ') , 'Pair() Pair()' , 'Flattening Hashes become Pairs when passed to map'); 12:04
p6eval rakudo 7c83e6: OUTPUT«ok 1 - Flattening Hashes become Pairs when passed to map␤»
moritz_ it seems that the version reporting on p6eval is wrong
patrickas moritz_: how do I get the version of parrot with which rakudo is built ? (mine and p6evals?) 12:05
moritz_ I'll push something, and test the rebuild
rakudo: say %*VM<config><revision> # used to work in alpha
p6eval rakudo 7c83e6: OUTPUT«47137␤»
patrickas I got 47344
moritz_ you can also run ./parrot_install/bin/parrot_config revision
12:05 whiteknight left
colomon patrickas: no, p6eval was never flattening 12:05
patrickas maybe the difference is that p6eval has an old parrot and we all have newer one locally ? 12:06
colomon it just wasn't an issue with map until map was changed to take a slurpy parameter.
moritz_ do you see a failure in t/spec/integration/advent2009-day16.rakudo ? 12:07
colomon moritz_: yes
dalek kudo: 09314df | (Gerd Pokorra)++ | build/Makefile.in:
Explicitly set --name for perl6.1 man page
colomon rakudo: use Test; lives_ok 'for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}' , 'Can handle "map {...} ,$x,$y"'; 12:09
p6eval rakudo 7c83e6: OUTPUT«not ok 1 - Can handle "map {...} ,$x,$y"␤»
patrickas maybe the test is messed up ... I wrote it after all :-)
colomon it seems like it had parens around the map arguments when we were messing this stuff yesterday? 12:10
patrickas I hate to have to ask such a stupid question 12:12
but what is lives_ok supposed to do ?
colomon patrickas: it executes the code and makes should the code doesn't throw an error. 12:13
patrickas if I test the code inside the quotes it gets executed without errors 12:14
rakudo: for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}
p6eval rakudo 7c83e6: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤ in 'map' at line 1523:CORE.setting␤ in main program body at line 11:/tmp/tCFT8oilev␤»
patrickas locally it just works 12:15
colomon it seems your patch is not applied in p6eval because that's exactly the error it was supposed to solve
map in p6eval is still expecting exactly 2 params and no more 12:16
finanalyst i am having problems with STD and wanted to do a nopaste, but the perl6 channel isnt in the dropdown box
patrickas rakudo: say &map ~~ Multi; 12:18
p6eval rakudo 7c83e6: OUTPUT«1␤»
patrickas rakudo: for &map.candidates -> $m { say $m.signature.perl; } 12:19
p6eval rakudo 7c83e6: OUTPUT«:(&mapper, @values)␤»
patrickas AHA!
introspection FTW! 12:20
finanalyst moritz_: #perl6 is not listed as a channel for paste.list.org 12:21
12:22 masak joined
masak oh hai, #perl6! 12:22
phenny masak: 06:47Z <Tene> tell masak to check for commits in web
finanalyst masak: hi
colomon rakudo: for &grep.candidates -> $m { say $m.signature.perl; }
p6eval rakudo 7c83e6: OUTPUT«:(Mu $test, *@values)␤»
colomon masak: o/
masak Tene: will do. will probably not have proper access to the 'net until tomorrow.
colomon patrickas: good call! 12:23
patrickas so that solves the first confusion we had, p6eval definetely does not have your patch regardless of what the version string is claiming
now the lives_ok failing test issue I am still not getting 12:24
can you guys try running
use Test;my $str = 'for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}';lives_ok ($str);eval ($str);
locally ? since p6eval cannot be relied upon in this case :-(
masak hey, I rewcognize that one-liner! :) 12:26
patrickas locally I am getting : lives_ok ($str) -> "not ok" but eval($str) -> correct output! 12:27
masak I was updating it to work with latest rakudo, but things got ... messed up :-)
masak patrickas++ # diligent 12:28
patrickas is it possible lives_ok is messed up ?
12:28 eternaleye left
patrickas masak: that was the only item on the roadmap to rakudo* within my reach :-) 12:29
masak "From each according to ability..." dear heavens, the guy who equated Rakudo to communism must have been right! :P 12:30
patrickas hehehe and the first release is version star 12:31
maybe we shoudl make it version star with a hammer and sickle inside it just to be more explicit :-) 12:32
masak er. we're not at the first release, we're at #29.
the thing you're referring to is a "distribution", although people don't seem to be uning that term much. 12:33
patrickas i am sorry I meant the first release with a name for a version number :-)
masak some even think that Rakudo * will be "Perl 6 released!" 12:34
patrickas yes that is it a distibution :-)
masak releases and distributions, as I understand it, fall on different "timelines".
patrickas oh well ... I think confusion is bound to happen no matter what 12:35
masak except that a distribution will be made shortly after a release, just like Rakudo is released shortly after Parrot is.
12:35 radu_ joined
masak moritz_: "PMC" in the IRC logs is explained with "Parrot Magic Cookie". that is very cute, but (I think) outdated. I don't know what it is nowadays. 12:36
moritz_ PolyMorphic Container 12:37
though it was only renamed to sound more serious 12:38
I don't support that -!Ofun motion, so I'm in no hurry to update
masak heh. 12:39
patrickas ok I think i got the lives_ok thingy 12:41
I am passing a string to it thinking it will eval it
12:41 xabbu42 left
patrickas but lives ok is expecting a closure 12:41
masak for what it's worth, I'm dismayed at the proposed change of ? semantics. but I haven't seen any spec changes yet; maybe these will be so good they'll atually convince me to like the new old semantics. 12:42
patrickas but if that's the case how do I pass something that rakudo can't parse yet, so that when rakudo can parse it the test will pass ? 12:43
moritz_ eval_lives_ok 12:44
take a look into Test.pm some day; it's instructive :-) 12:45
patrickas heheh defined just a few lines below it :-) read the source luke!
I read enought of it just to understand why lives_ok was not doing what I want. Then I promptly closed it :-) 12:46
cosimo how do I translate this grammar into a perl6 grammar? 12:48
github.com/reductivelabs/puppet/raw...grammar.ra 12:49
i guess there's no easy answer 12:50
moritz_ you can look at the precedence parser in STD.pm6; a simplified version + hand translating the other parts of the grammar should get you tehre
I still hope for a spec that exposes the precedence parser to the userland 12:52
it's something that every implementation must contain anyway, and it's likely to be rather useful for the Perl 6 programmer
pugssvn r31121 | patrickas++ | use eval_lives_ok 12:53
masak moritz_: you hope so too? cool!
patrickas OK so I think i finally cleaned the mess I made :-) 12:54
masak jnthn: ping
cosimo moritz_: this is the current one? svn.pugscode.org/pugs/src/perl6/STD.pm6
12:55 ajs joined 12:58 ajs1 joined 13:00 ajs left 13:01 patrickas left
radu_ Hi! I'm new around here and i'd like to contribute to the Perl 6 project. I'd like to start with testing. 13:01
I need a commit bit for the pugs repository, right?
13:03 ajs1 left
masak phenny: tell jnthn that I tried the gist with the "öl" in it yesterday on the bus. is there a way to iterate over a ByteView, or get the length of it? I think I'd need one or the other to know when to stop. :P couldn't find a way to make it work. 13:04
phenny masak: I'll pass that on when jnthn is around.
masak time to log off and spend time with my nephew. 13:05
o/
13:05 masak left
ashleydev_ radu_: welcome 13:06
i'm just a lurker for now, but moritz_ can get up up to speed on the testing bit 13:07
radu_ ok, thanks :)
13:21 masonkramer left, masonkramer_ joined, masonkramer_ is now known as masonkramer 13:40 azert0x left 13:41 azert0x joined
jnthn phenny: tell masak yes, I thought I mentioned that elements was still missing, but you may like to have a crack at adding it. :-) But I can do so. :-) 13:43
phenny jnthn: I'll pass that on when masak is around.
jnthn: 13:04Z <masak> tell jnthn that I tried the gist with the "öl" in it yesterday on the bus. is there a way to iterate over a ByteView, or get the length of it? I think I'd need one or the other to know when to stop. :P couldn't find a way to make it work.
13:43 xinming_ is now known as xinming
jnthn ESAWITALREADY 13:43
radu_: Hi! You're wanting to work on some testing things?
radu_ yeah
can you help me get started? 13:44
jnthn Yes, for sure. Give me a moment to make some coffee, and I'll help you. :-)
radu_: OK, I'm back. :-) 13:48
13:49 JimmyZ joined
jnthn radu_: So, it's probably helpful if you have commit access to the test suite. /msg me your desired username and your email address and I can get you a commit bit sent. 13:49
radu_: The tests are in svn.pugscode.org/pugs/t/spec/ - if you have Rakudo already checked out and did make spectest, then you'll already have a hackout of them.
13:49 Ross left
jnthn er, a checkout 13:51
I normally work from that.
After that, it's mostly a case of finding tests to write. There's a couple of places to do that; one is by looking in the svn.pugscode.org/pugs/t/spec/TODO 13:52
Another is the Rakudo RT queue. 13:53
The toher important thing to know about is fudge, which is somewhat explained in svn.pugscode.org/pugs/t/spec/README 13:54
*other 13:55
13:55 pmurias joined
jnthn But basically, if you edit a test file that Rakudo runs and it's a test that Rakudo fails, it should be "fudged". 13:55
Either by "todo" (meaning we can execute the test without crashing but get the wrong answer - just a normal todo really) or "skip" (which means fudge comments out the test so we don't run the code at all). 13:56
jnthn hopes that makes some sense :-) 13:57
radu_ ok, i don't have rakudo yet. I'll install it in a couple of minutes.
i checked-out the pugs sources, should i do a test commit now?
jnthn radu_: Yes, the custom is to add yourself to the AUTHORS file in the first commit. :-) 13:58
pugssvn r31122 | radus++ | Added new user radus. 14:03
radu_ ok, seems to be working :)
14:03 ash__ joined
jnthn \o/ 14:04
14:07 pmurias left 14:13 synth left 14:15 synth joined
moritz_ jnthn: can I use the quote_EXPR parser to not eat up the terminal quote? 14:16
jnthn moritz_: As far as I know, it eats both quotes. 14:25
moritz_: But if you want to get at the thing it quoted, it's available as a sub match. 14:26
moritz_ jnthn: I'm investigating tr/// parsing
dalek ok: 001c38c | util++ | src/multi-dispatch.pod:
[mmd] Fixed syntax by adding "multi" to example
jnthn moritz_: OK, cool. See also s/// parsing.
moritz_ yes, but that uses the .LANG trick, which doesn't eat up the modifiers 14:27
jnthn Aha
Yeah, I see the issue. Hmm.
jnthn checks STD
moritz_ without looking I guess it has a Quote LANG 14:28
s/Quote/Q/
jnthn Yeah
But our quote parsing seems to work different to that.
moment, checking something 14:29
moritz_ I wonder if I can call quote_delimited directly
jnthn That also noms the delimiters 14:30
You want to I think do
:my $*QUOTE_STOP := '/'; <quote_atom>
moritz_ I'll try that, thanks 14:31
my current plan is to re-use Substituion.pm 14:32
and add an additional attribute for subst vs. tr
14:33 radu_ left
jnthn moritz_: OK. I'm not sure how correct the Substitution.pm approach is 14:33
moritz_ probably not very :-)
jnthn moritz_: I guess it can be made to work once we have sink context implemented.
14:33 radu_ joined
moritz_ not sure how robust it is to leaking the Substitution object into userland 14:34
rakudo: say s/a/b/.WHAT
p6eval rakudo 09314d: OUTPUT«Substitution()␤»
jnthn moritz_: Yeah, quite.
moritz_: I couldn't get a straight answer on how it should work, though, so I just Did Something. 14:35
moritz_ my $x = s/a/b/.WHAT # not in sink context
jnthn moritz_: Ah, hmm.
moritz_ I guess it should just be a call, with $topic = $_
jnthn I wonder if we always want to call it immediately.
Ah, yes
moritz_ yes
jnthn Because when ~~ sets $_...
:-)
moritz_ right 14:36
it should :-)
jnthn Maybe I should hack on that.
moritz_ if you do, I'll attempt to fix s/// 14:37
14:40 TiMBuS left
moritz_ it should be as simple as a PAST::Val.new(:pasttype('callmethod'), :name('subst'), PAST::Va.new(:name('$_'), :scope('lexical')), $PAST_FOR_REGEX, $PAST_FOR_SUBSTITUTION); 14:43
14:43 agentzh left
moritz_ oh noez; my attempt at tr/// make rakudo exit silently 14:44
14:45 rv2733 joined
moritz_ and it doesn't like sub tryeq from file S03-operators/arith.rakudo 14:45
moritz_ suspects LTM issues with term parsing 14:48
jnthn oh noes
Haz you a >> ? 14:49
moritz_ I haz, yez
ah
it's a problem for all quote things parsed with quote_EXPR
but not a problem for things parsed with LANG('Regex' 14:50
rakudo: sub Quux { say 3 }; Quux
p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Confused at line 11, near "Quux"␤»
moritz_ rakudo: sub suux { say 3 }; suux
p6eval rakudo 09314d: OUTPUT«3␤»
jnthn oh, ouch
moritz_ doesn't collide with s///
rakudo: sub rxbla { say 3 }; rxbla # again, regex parsing causes no problems 14:51
p6eval rakudo 09314d: OUTPUT«3␤»
jnthn rakudo: qqe
p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Confused at line 11, near "qqe"␤»
jnthn rakudo: qqe()
p6eval rakudo 09314d: OUTPUT«Could not find sub &qqe␤ in main program body at line 11:/tmp/iPPeOMEJFk␤»
jnthn ew
moritz_ rakudo: qqxa
p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Confused at line 11, near "qqxa"␤»
moritz_ I wonder if the failure mode of a failed quote_EXPR is the same as for a failed, ordinary token 14:52
jnthn nqp: Qa 14:53
p6eval nqp: OUTPUT«Confused at line 1, near "Qa"␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
jnthn moritz_: It looks to be implemented in the same terms as other things (e.g. cursor_pass, etc)
moritz_ some compiled regexes call ."mark_fail"(0) on the cursor 14:54
or "!cursor_fail" 14:55
jnthn I wonder if we can hack around it with 14:56
<sym> <!before <alpha>> >>
moritz_ I'll try 14:57
it feels like it shouldn't work 14:58
because >> after <sym> already implies not being before an alpha
jnthn ah, ye
*yes
But it doesn't seem to be doing the Right Thing. 14:59
moritz_ thing is, it seems to make a difference where the regex fails
either immediately (common case), or after matching the literal prefix (or <sym>) 15:00
which would be a bug
jnthn tries out a fix for RT#75514 15:08
JimmyZ rakudo: my $d; for 1..5 { sub; };
p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>␤»
jnthn wtf
moritz_ evalbot nuisance 15:09
and error reporting at previous line
or something
jnthn ah, yes. 15:11
moritz_ elsif $m eq 's' { $/.CURSOR.obs('/s','^^ and $$ anchors'); }
elsif $m eq 'm' { $/.CURSOR.obs('/m','. or \N'); }
isn't that exactly the wrong way round?
in perl 5 /m changes behaviour of ^ and $ 15:12
and /s changes .
jnthn erm, yes.
That's what blind copying from STD gets us. :-)
15:13 radu_ left
arnsholt Has an argmax method for Array or the like ever been considered? 15:13
jnthn argmax? 15:14
JimmyZ rakudo: use MONKEY_TYPING; my $d = ''; augment class Str { method some_meth_1 {$d = $d ~ self;}}; for '0' .. '5' { .WHAT.say; .some_meth_1; }; # known bug? runing twice.
p6eval rakudo 09314d: OUTPUT«Str()␤Str()␤Method 'some_meth_1' not found for invocant of class 'String'␤ in main program body at line 11:/tmp/gLI4jA4RDD␤»
arnsholt jnthn: "Which value from the array maximises this function?"
JimmyZ I heard something similar
but not sure it's the same one 15:15
dalek kudo: 8c85fb4 | moritz++ | src/Perl6/Grammar.pm:
fix p5 -> p6 regex error message confusion
colomon arnsholt: max does that already
colomon arnsholt: though it may be implemented in rakudo yet
jnthn JimmyZ: Seems that there is more than one bug there...
arnsholt colomon: Indeed it does. Thanks
jnthn I think max with an arg works. 15:16
JimmyZ jnthn: I don't know the more ones.
colomon rakudo: my @a = 1..10, -4; say @a.max({-$_}) 15:18
p6eval rakudo 09314d: OUTPUT«Too many positional parameters passed; got 2 but expected between 0 and 1␤ in <anon> at line 1:/tmp/syR3wJRdVZ␤ in 'Any::max' at line 1335:CORE.setting␤ in main program body at line 11:/tmp/syR3wJRdVZ␤»
JimmyZ rakudo: use MONKEY_TYPING; my $d = ''; augment class Str { method some_meth_1 {$d = $d ~ self;}}; for '0' .. '5' { .WHAT.say; sub; }; # this complained $d is not predeclared, which is wrong too. 15:19
p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>␤»
colomon rakudo: my @a = 1..10, -4; say @a.max({-$^a <+> -$^b })
p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
colomon rakudo: my @a = 1..10, -4; say @a.max({-$^a <=> -$^b })
p6eval rakudo 09314d: OUTPUT«-4␤»
colomon passing single arg closure nyi, gotta pass the actual comparison function 15:20
that's probably LHF
arnsholt Yeah, probably 15:21
colomon or not, now that I think about it. getting it fully right is kind of tricky. 15:25
I suppose a quick and dirty implementation might be LHF.
arnsholt How so? 15:26
colomon Well, in theory it should handle an Ordering argument, instead of just a closure.
moritz_ just pass the thing on to .sort
colomon and it should behave differently de...
moritz_: no!
moritz_ that's the quick-n-dirty solution
colomon that's hideously wasteful.
you could get a drastically better quick-n-dirty solution by just making a new comparison closure using a single arg closure, if that is what is passed in. 15:27
and that's still not an ideal way of doing it.
arnsholt True, true 15:32
15:36 ingy joined
JimmyZ sigh, why RT can't be created ticket by myself 15:36
colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature 15:37
p6eval rakudo 09314d: OUTPUT«Signature()<0x3723130>␤»
colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.perl
p6eval rakudo 09314d: OUTPUT«:(;; Mu $a, Mu $b)␤»
colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.^methods.perl 15:38
p6eval rakudo 09314d: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ...
..}, { …
colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.^methods>>.name.perl
p6eval rakudo 09314d: OUTPUT«("perl", "ACCEPTS", "params", "acos", "fmt", "eval", "chop", "tanh", "subst", "Numeric", "chomp", "index", "chr", "acotanh", "trim-trailing", "capitalize", "pred", "atanh", "cosec", "exp", "lc", "p5chop", "chars", "sinh", "acotan", "lcfirst", "roots", "sec", "asec", "trim",
.."cotanh…
colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.params.perl
p6eval rakudo 09314d: OUTPUT«(Parameter.new(), Parameter.new())␤»
colomon rakudo: my $a = { $^a.abs }; say $a.signature.params.perl
p6eval rakudo 09314d: OUTPUT«(Parameter.new(), )␤»
colomon rakudo: my $a = { $^a.abs }; say $a.signature.params.elems 15:39
p6eval rakudo 09314d: OUTPUT«1␤»
colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.params.elems
p6eval rakudo 09314d: OUTPUT«2␤»
15:42 JimmyZ left 15:46 p6eval left, p6eval joined 15:48 gbacon left
lue ohai 15:58
16:02 tedv joined 16:03 masonkramer_ joined 16:07 patspam joined
diakopter mruhaha 16:08
pugssvn r31123 | diakopter++ | [evalbot] disable most of mono optimizations in p6eval perlesque 16:11
16:11 p6eval left
diakopter urm 16:12
16:12 p6eval joined 16:13 p6eval left
pugssvn r31124 | diakopter++ | [evalbot] disable most of mono optimizations in p6eval perlesque [reprise] 16:13
16:13 p6eval joined 16:14 xomas left, xomas_ joined, xomas_ left, xomas_ joined
lue what's the reprise for? 16:15
diakopter fixing my flub 16:16
16:32 dakkar joined
masonkramer wants the synopses as pdfs 16:35
16:36 masonkramer_ left
moritz_ masonkramer: I'm sure there's a pod2latex translater somewhere... 16:39
masonkramer: from there on it's only a tiny step towards having a PDF
diakopter masonkramer: I too am curious how many 8.5x11" sheets they consume :) 16:40
dalek ok: 38d3aa9 | moritz++ | src/basics.pod:
[basics] talk more about scalars

Also remove a notice from chromatic++ which we follow now; Add a footnote for the Perl 5 programmer about sigil invariance
16:45
pmichaud good morning (barely), #perl6 16:48
jnthn o/ pmichaud
pmichaud: barely good, or barely morning?
pmichaud barely morning 16:49
jnthn Ah, good.
:-)
pmichaud (11 minutes left here)
too soon to tell if the morning is good or not. :-P
lue goodmorning
jnthn I was awake for 5 hours of the morning.
The ones up until 5am :-)
16:50 patspam left
lue
.oO(Internet (ihn-tur-neht) [n.] — Destroys all concepts of day and night)
16:50
16:51 justatheory joined
jnthn lue: Living this far north almost does that too, at this time of year. ;-) 16:51
jnthn has a patch to close a Rakudo bug from July last year :-) 16:52
lue \o/
jnthn sets spectests going while he goes to the shops 16:54
It also fixes exit :-) 16:55
lue :D That's a major problem with REPL, that only ^C will exit. 16:56
jnthn Oh, it doesn't fix it for the REPL though...
But I could fix that also
TimToady ^D works fine for me
jnthn This was exit not working even in a program body.
TimToady: It'd probably be nice if "exit" did akshually exit the REPL though, I guess. :-) 16:57
lue What is the difference between ^C and ^D [or rather, what signal does each one send] 16:58
jnthn bbs
TimToady rakudo: kill 15, $*PID
p6eval rakudo 8c85fb: OUTPUT«Could not find sub &kill␤ in main program body at line 11:/tmp/7zDM9dWglm␤»
pmichaud ^C is INTR, ^D is EOF
lue Only a couple of times I had to use ^D, and that was when ^C failed
TimToady um, ^C is more violent
lue .u KILL
phenny lue: Sorry, no results for 'KILL'.
lue .u SIG 16:59
phenny U+C2DD HANGUL SYLLABLE SIG (식)
TimToady I would use ^C if ^D fails
pmichaud anyway, we can get exit to work, I think.
It used to work in alpha, iirc.
just a sec.
okay, will take slightly more than a second... :-) 17:01
17:01 Ross joined
lue well, I've had better luck with ^C than ^D [in terms of doing what I want them to do]. Ah well, TIMTOWTDI :) 17:01
17:03 rgrau joined, Trashlord left
dalek ok: ef42d30 | moritz++ | src/subs-n-sigs.pod:
[subs] incorporate some cleanup by chromatic++
17:03
17:04 Trashlord joined
moritz_ I can't help but feeling the spec for Str.trans is terribly bloated 17:07
it contains lots of stuff that isn't even accessible from within tr///
like that "regex as a matcher" thing 17:08
TimToady tr/// is just a convenience
moritz_ IMHO it's good to have it somewhere, but bad to have it all in one method
TimToady the point is to do transliteration, not to preserve the history of tr/// 17:09
moritz_ but maybe it's just me trying to implement it sanely... (or get others to do it)
TimToady well, yes, it's specced to essentially be doing LTM over an alternation, and the translation easy once you've figured out which pattern matches 17:10
moritz_ that's another thing I'd like to talk about
I stil feel it's overly hard to identify which one of a set of alternatives matched 17:11
TimToady that's the job of the LTMer
STD does it on every token :)
moritz_ well, I mean for the user
which language construct would you use to find out? 17:12
proto tokens probably
TimToady define the functional meaning of "identify"?
what would you do with the information?
moritz_ usually to perform a certain substituion or other operation
TimToady anything more complicated than transliteration probably wants a transducing grammar instead 17:13
moritz_ I'd shut up if we had a nice API for creating proto tokens and adding alternatives programmatically
(something more convenient than eval()) 17:14
TimToady .^add_method
pmichaud oh dear.
pmichaud@orange:~/rakudo$ ./perl6 17:15
> exit 1
> exit 60
in main program body at line 1
moritz_ proto regex a { <...> }; &a.^add_method('a:sym<foo>', rx{ <sym> \w+ }); # like this?
pmichaud pmichaud@orange:~/rakudo$
so, exit "works" if you happen to return one of the magic exit values. 17:16
TimToady grammar Base { proto regex a { <...> } }; grammar Derived is Base { regex a:sym<foo> { <sym> \w+ } }; # or whatever methods this calls internally 17:18
lue afk # and then making a couple more shirts! 17:19
TimToady grammar categories are inherited
17:20 skids left
moritz_ so... 17:20
TimToady so you don't have to monkey patch the base grammar
moritz_ that's not quite the programmatic API I was looking for
but I guess with enough violence it can all be done with API calls to the meta class 17:21
... for which somebody will then write a module to abstract it away
TimToady what we want is something that says, "Here's an eval, tell me what to do instead of that." :) 17:22
and now we're probably redesigning quasi's :) 17:23
moritz_ well, an eval where we don't have to care about interpolation would be great... right
that's quasi
are quasis available from outside macros?
TimToady sure
moritz_ heh
then I guess I have my API \o/
TimToady std: quasi { "Your ad here" }
p6eval std 31124: OUTPUT«ok 00:02 111m␤» 17:24
moritz_ just need to find soembody to implement it
... and find out how to make money from these ads :-)
TimToady SM\O/P
that's the real trick, ain't it...
moritz_ I do make some money from ads, but it somewhat disturbs me that it only works for a low-tech site -- no chance with Perl 6 contents :-) 17:25
TimToady I'm sure Ted Nelson has a micropayment system for that. :) 17:26
unfortunately Xanadu turned out to have caverns measureless to man 17:27
moritz_ unfortunately the only micropayment system that was moderately successful cranked up its fees so much it's unusable as a micropayment system these days 17:28
pmichaud what exceptions is CATCH supposed to catch? (Or, if easier, what should it not catch?) 17:32
TimToady one of Xanadu's problems was that it kind of assumed that the value of a text we related to its length, and that the length was a well-defined concept, which it was when everyone used bytes for characters. :)
17:33 rgrau left
TimToady s/text we/text was/ 17:33
CATCH doesn't catch control exceptions
pmichaud right, so which are the control exceptions? 17:34
does CATCH catch fail/die ?
TimToady yes
er die
fail is not an exception
pmichaud well, it's a return exception, like 'return'
but yes, I see the difference.
TimToady also, remember that control exceptions actually are only for locating scopes; they do no stack unwinding themselves 17:35
if they find their target scope, then they can unwind
pmichaud so, 'die' isn't a control exception.
TimToady no, it's a normal exception 17:36
17:36 cognominal left
pmichaud how about 'exit'? 17:36
(to the extent that exit might be considered exceptional, which is how Parrot currently treats it)
17:36 cognominal joined
TimToady I'd say it's a control exception that is typically not caught until the outermost CONTROL 17:36
pmichaud okay.
TimToady but a webserver might well catch it 17:37
pmichaud but that would be with a CONTROL block, not a CATCH
TimToady yes
jnthn back from @shop
ooh, interesting discusison while I was gone
jnthn backlogs
TimToady any situation where you have multiple GLOBALs running in one PROCESS
17:38 ispeak_ joined
TimToady exit is primarily intended to exit the current interpreter, not the current process 17:38
jnthn pmichaud: I fixed exit already.
pmichaud jnthn: not really.
jnthn pmichaud: Enough.
pmichaud jnthn: there's a bug in the 'exit' opcode.
jnthn pmichaud: Oh. 17:39
pmichaud exit $I0 throws an exception of type $I0
jnthn pmichaud: OK, I've made things no more broken than they were before I broke them more when I did backtraces.
oh wtf.
It's meant to set exit_code.
pmichaud right
jnthn Parrot fail.
pmichaud and there doesn't seem to be an exception type for handling 'exit'
jnthn pmichaud: It's a severity.
pmichaud other than CONTROL_ERROR, which is what is also used for &die and &warn
EXCEPT_EXIT is a severity, yes, but we also need a type. 17:40
jnthn Oh?
OK.
pmichaud that doesn't get caught by our CATCH blocks.
jnthn Aha.
dalek kudo: 53c3a48 | jonathan++ | build/PARROT_REVISION:
Bump to latest Parrot to get improvements to the backtrace handling code; this
kudo: c3e84aa | jonathan++ | src/builtins/control.pir:
The default Warning message should not come with a \n on it already.
kudo: 01583bf | jonathan++ | src/Perl6/BacktracePrinter.pm:
Make backtrace printer smart enough to recognize warnigns - which it is now
jnthn pmichaud: OK, makes sense.
pmichaud either that, or we have to have our CATCH blocks check for severity. But that seems Real Wrong.
TimToady I think in addition to exit we also need politely_request_process_to_exit_all_interpeters or some such :) 17:41
17:43 radu_ joined
jnthn pmichaud: Yes, that'd be nasty. I see the issue now. 17:43
pmichaud: Guess it just needs a little Parrot hacking. 17:44
TimToady in other words, we should be able to take a standalone program containing 'exit', plug it without change into a web server that runs multiple interpreters, and not have 'exit' blow the whole server up
jnthn Sounds kinda useful. :-) 17:45
TimToady so it must be a control exception catchable by the outer process, and not hardwired to POSIX::exit or whatever :)
rakudo: fail "foo" 17:46
p6eval rakudo 8c85fb: ( no output )
pmichaud rakudo: for 1..4 { say $_; exit 64; }
p6eval rakudo 8c85fb: OUTPUT«1␤2␤3␤4␤»
pmichaud :-D 17:47
17:47 skids joined
jnthn eww 17:47
pmichaud anyway, I'll work on cleaning it up.
jnthn pmichaud: OK, or I can probably do the Parrot tweaks. 17:48
17:48 wasy_ joined
jnthn pmichaud: I guess it's just a case of adding another type. 17:48
TimToady rakudo: $*ERR.print("hello?\n")
p6eval rakudo 8c85fb: OUTPUT«hello?␤»
TimToady why doesn't fail output its output?
jnthn TimToady: Does here.
TimToady here to, but not the bot
jnthn Or at least, in the repl.
moritz_ autoprinting? 17:49
jnthn Not sure. Odd. :-/
TimToady *too
rakudo: fail "foo\n"
p6eval rakudo 8c85fb: ( no output )
TimToady rakudo: die "foo\n"
p6eval rakudo 8c85fb: OUTPUT«foo␤␤ in main program body at line 11:/tmp/d1mIGsYzbl␤»
pmichaud fail returns a failure 17:50
17:50 wasy left, wasy_ is now known as wasy
pmichaud but nothing happens if that failure isn't used somehow. 17:50
in the case of the repl, it gets printed, which forces the message to stdout
in the case of the bot... the return value is never printed or used.
TimToady I think moritz_++ got it in one
pmichaud right
I was elaborating :) 17:51
jnthn: so, in parrot-terms, if &die doesn't throw a control exception, what kind of exception should it throw? 17:52
TimToady I believe failure in sink context should also die.
pmichaud is a 1-liner fail in sink context, though?
TimToady rakudo: return 42; 17:53
p6eval rakudo 8c85fb: ( no output )
pmichaud and do we want { foo-that-fails(); say 'hello'; } to die?
(I'm okay with "yes")
TimToady that's what I believe
pmichaud okay.
TimToady which is why I used that word. :)
jnthn pmichaud: Ergh...I'm not even sure how the exception types thing works...
pmichaud jnthn: in what sense? 17:54
jnthn: I mean, what part doesn't make sense?
(besides parrot's crazy mapping of exception types)
jnthn pmichaud: Is it just a bunch of integer codes that we can stash in an exception object?
pmichaud it's an integer code used to identify the type of exception 17:55
jnthn pmichaud: And then a handler can say "oh, I'll take anything with this list of IDs"?
pmichaud for example, .CONTROL_RETURN, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, etc.
then a handler can say "I'm interested in these types of exceptions", yes.
jnthn oh argh
pmichaud (it can also say "I'm interested in everything but these types of exceptions")
jnthn But LOADS of Parrot exceptions that we could get also get codes in the same sense. 17:56
pmichaud that's generally okay
jnthn Oh, well in that case we could do CATCH by listing all the CONTROL_ exceptions.
But...eww.
pmichaud we do that now.
jnthn Oh?
pmichaud yes.
that's not the problem I'm having.
jnthn rakudo: try { return 42; CATCH { say "caught" } }
p6eval rakudo 8c85fb: ( no output )
jnthn ah, so we do 17:57
I'd thought that was still broken.
pmichaud the problem I have is that Parrot's "die" opcode sends an exception of type CONTROL_ERROR
but in Perl 6, &die isn't a control exception
jnthn Oh.
That feels...wrong.
pmichaud so, I'm trying to figure out how to map what Perl 6 wants onto parrot's exception types
jnthn (CONTROL_ERROR)
I'm sorta surprised Parrot has that. 17:58
pmichaud I dunno, I think most folks outside of the Perl 6 world would expect "die" to be a form of error exception
so I don't think Parrot's too far off there.
jnthn Yes, but not a form of control exception?
pmichaud it would be a control exception in a sense similar to 'return'
TimToady the point of control exceptions is to hijack the exception mechanism for *non* errors 17:59
jnthn OK
pmichaud TimToady: yes, I'm just saying how Parrot has likely traditionally view 'die', which is in the Perl 5 sense.
*viewed
jnthn pmichaud: But afaict, there's no "hierarchy" here. The fact it's called CONTROL_ERROR is just what it's called.
pmichaud right, there's no hierarchy
jnthn We can use the code and pretend it's not called CONTROL_ERROR if we want. :-)
pmichaud so, I'm asking this question (more)
1. what exception type should we use for &exit 18:00
2. what exception type should we use for &die
jnthn 1. Add another exception type to Parrot
pmichaud and note that the answers to the above don't have to match what Parrot uses for its 'exit' and 'die' opcodes.
jnthn 2. CONTROL_ERROR would seem to be our best bet.
pmichaud using CONTROL_ERROR for &die seems wrong since in Perl 6 &die isn't a control exception :) 18:01
jnthn Yes, but since thre's no hierarchy it's just purely a name.
(A meaningless one.)
pmichaud meaningless even for hll interop?
18:02 christine left
jnthn pmichaud: Well, I don't see anything else at all on the list that other languages would be liable to pick other than CONTROL_ERROR for things that "die". 18:03
pmichaud okay
then I agree with your answers :)
jnthn pmichaud: All the others are very specific.
pmichaud I'll add CONTROL_EXIT, change exit opcode to use that.
TimToady could we get parrotfolk to rename it so it doesn't say CONTROL
?
USER_ERROR or some such
pmichaud TimToady: possibly, but again, in the Parrot world, 'die' really is a form of control exception.
moritz_ where in STD.pm6 is lang Q defined? 18:04
jnthn moritz_: grep for grammar Q
moritz_ jnthn: thanks
pmichaud moritz_: btw, I couldn't sleep thursday night and so I figured out how to use inversion lists for <[...]> charclasses in Rakudo. :)
moritz_ pmichaud: now that's good news!
jnthn \o/
18:05 christine joined
pmichaud which means we'll even be able to get things like <[\Wabc]> to work. 18:05
TimToady pmichaud: sounds to me like parrot doesn't know what a control exception is really
pmichaud TimToady: no argument there.
jnthn std: <[\Whoz op?]>
p6eval std 31124: OUTPUT«ok 00:01 107m␤»
jnthn std: /<[\Whoz op?]>/
p6eval std 31124: OUTPUT«ok 00:01 106m␤»
jnthn :-D
pmichaud and things like <[\x7000..\x7fff]> won't result in 4096 byte constants :-) 18:06
jnthn TimToady: Well, yeah, what I wasn't saying above is "gah, I hate this whole thing!"
TimToady std: /<[\Whozop?]>/
p6eval std 31124: OUTPUT«ok 00:01 105m␤»
TimToady std: /<[Whozp]>/
p6eval std 31124: OUTPUT«ok 00:01 105m␤» 18:07
moritz_ pmichaud: funnily I mentioned inversion lists on perlmonks just the other day
pmichaud checks
have a url handy?
TimToady std: /[\Whozop]/
p6eval std 31124: OUTPUT«ok 00:01 105m␤»
moritz_ www.perlmonks.org/?node_id=842899
TimToady std: /[Whozop]/
p6eval std 31124: OUTPUT«ok 00:01 104m␤»
TimToady std: /[Whozp]/
p6eval std 31124: OUTPUT«Potential difficulties:␤ [Whozp] appears to be an old-school character class; please use <[Whozp]> if you␤ mean a character class, or quote it like 'Whozp' to match␤ string as a unit at /tmp/ojo1EFExIA line 1:␤------> /[Whozp]⏏/␤ok 00:01 104m␤»
TimToady std: /[\Whozp]/
p6eval std 31124: OUTPUT«Potential difficulties:␤ [\Whozp] appears to be an old-school character class; please use <[\Whozp]> if you␤ mean a character class, or put whitespace inside like [ \Whozp ] to disable␤ this warning at /tmp/DkzbJKYV95 line 1:␤------> /[\Whozp]⏏/␤ok 00:01
..1…
jnthn TimToady: Ah, the double o maybe? 18:08
TimToady yep
jnthn Makes sense.
18:08 Trashlord left
TimToady std: /[\Who zp]/ 18:08
p6eval std 31124: OUTPUT«Potential difficulties:␤ [\Who zp] appears to be an old-school character class; please use <[\Who\x20zp]> if you␤ mean a character class, or put whitespace inside like [ \Who zp ] to disable␤ this warning at /tmp/mcQO0HuqMz line 1:␤------> /[\Who zp]⏏/␤ok
..…
moritz_ (short summary: somebody looked for a way to count number of overlaps for sparse ranges)
TimToady std: /[ \Whozp ]/
p6eval std 31124: OUTPUT«ok 00:01 106m␤»
TimToady which also works for the double space
18:09 bluescreen joined, Chillance joined, bluescreen is now known as Guest33860
pmichaud really wants a way for NQP to access Parrot's constants more directly. 18:12
TimToady std: for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b} 18:13
p6eval std 31124: OUTPUT«ok 00:01 108m␤»
TimToady okay, "%{$c}" now doesn't complain
std: "${foo}bar" 18:15
p6eval std 31124: OUTPUT«===SORRY!===␤Unsupported use of ${foo}; in Perl 6 please use {$foo} at /tmp/8qfYmPOPl5 line 1:␤------> "${foo}⏏bar"␤Parse failed␤FAILED 00:01 104m␤»
TimToady but that still does :)
pugssvn r31125 | moritz++ | [t/spec] a wee unfudge for rakudo 18:16
pmichaud exit # lunch
pugssvn r31126 | moritz++ | [t/spec] rewrite exit.t with Test::Util
jnthn pmichaud: noooo...you exit isn't resumable! 18:17
s/you // 18:18
moritz_ jnthn: as long as it's not /exit :-)
pmichaud jnthn: perhaps "exit" as in "Exit stage right, followed by a bear" ? 18:19
(lunch is slightly delayed)
moritz_ rakudo: use Test; plan 1; lives_ok { warn "# foo" }, 'bar';
p6eval rakudo 01583b: OUTPUT«1..1␤not ok 1 - bar␤# Looks like you failed 1 tests of 1␤»
pmichaud jnthn: so, here's an idea
jnthn
.oO( dammit, .^attributes is epicly broken )
18:20
pmichaud PAST::Val.new( :value('.CONTROL_NEXT'), :from('exception_types') )
18:20 envi^home left
pmichaud where that gets automatically translated into the appropriate .include and remains a constant in the PIR source 18:21
(as opposed to being translated into the integer equiv)
jnthn pmichaud: Hmm
dalek kudo: e67ef33 | moritz++ | t/spectest.data:
run exit.t
pmichaud so that we don't have to be doing Q:PIR { .include ... }
jnthn pmichaud: I guess that's kinda mappable to other backends.
pmichaud: Yeah, that sucks to do.
pmichaud: Maybe drop the . (of course, insert it when emitting the PIR) 18:22
pmichaud well, more generically I'm also thinking of something like nqp::exception_types<CONTROL_NEXT>
jnthn Hmm, yes.
pmichaud afk, dinner.
er, lunch 18:23
and yes, drop the .
jnthn I think either of those maybe works
Well
I guess you'd need both at some level 18:24
Maybe it's a good idea to find a way to have nqp:: style things without confusing operations and "hashes" though
18:27 Trashlord joined 18:32 Trashlord left
TimToady also note that warnings are control exceptions because they expect to resume 18:35
control exceptions are basically all those below the "I think I'm dying" threshold.
18:37 rv2733 left
TimToady and that is the threshold that is the CONTROL/CATCH boundary 18:37
pmichaud jnthn: it's not much different than other namespaces, though. Maybe %nqp::exception_types<CONTROL_NEXT> is special. 18:38
or maybe we just find a way to have const CONTROL_NEXT
jnthn pmichaud: Aye 18:39
pmichaud TimToady: so, CATCH doesn't catch &warn ?
(just verifying)
TimToady nope
pmichaud okay.
TimToady I believe that's specced
jnthn pmichaud: Anyway, the idea overall (expose the constants in a way that's VM-independent) is a fine one.
TimToady S04:1092 18:40
pmichaud TimToady++
sorear jnthn: pmichaud has already +1'd my proposal (pasm::HEADER::NAME for direct access to Parrot constants to use with pir::, but if you're using portable nqp:: calls, use the nqp:: constant aliases) 18:42
pmichaud sorear: yes, that's what we're currently discussing
sorear: I'm trying to figure out exactly how I want to fold it into nqp/past/post 18:43
I may go with the pasm:: approach for the short-term.
sorear :scope('macro'), :include('exception_types.pasm') ?
pmichaud I'm thinking they're more PAST::Val than PAST::Var 18:44
and I'm more interested in "constants", not "macros"
jnthn Aye, the "macro" thing is a Parrot implementation detail.
lue ohai again 18:51
18:52 Trashlord joined
pmichaud afk, walk. 18:53
pugssvn r31127 | lwall++ | [STD] backwards /s and /m noticed by moritz_++ 18:54
18:54 finanalyst left 18:58 radu_ left
sorear diakopter: How do I compile this thing? 19:01
19:01 mantovani left
pugssvn r31128 | lwall++ | [S05] posit that cursor lists may be returned to a regex with <.gather { take ... }> 19:02
pmichaud back 19:14
diakopter sorear: (back)
sorear: xbuild Sprixel.sln
sorear, well 19:17
xbuild /p:Configuration=Release Sprixel.sln
then
run Sprixel.exe ( `mono bin\Release\Sprixel.exe`) to generate perlesque.exe 19:18
then `mono -O=-all,cfold perlesque.exe file-to-run` to run perlesque code 19:19
-O=-all,cfold disables mono optimizations that ... take longer than they should 19:20
19:25 azert0x left
jnthn std: my $x = multi method () { } 19:26
p6eval std 31127: OUTPUT«ok 00:01 109m␤»
jnthn Ah, STD doesn't do that (semantic) check.
Turns out termish needs to clear $*MULTINESS like it does $*SCOPE, anyways.
Otherwise if you write an anonymous method inside a multi sub you get an epic fail. 19:27
bbs
19:27 finanalyst joined 19:28 ispeak_ left
jnthn std: sub foo() { sub bar() { }; sub bar() { }; } 19:28
p6eval std 31127: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'bar' (see line 1) at /tmp/irHvoUI1Xl line 1:␤------> sub foo() { sub bar() { }; sub bar⏏() { }; }␤Check failed␤FAILED 00:01 105m␤»
jnthn std: multi sub foo() { sub bar() { }; sub bar() { }; }
p6eval std 31127: OUTPUT«ok 00:01 105m␤»
sorear diakopter: Sprixel.exe is generating a *huge* amount of output
jnthn TimToady: ^^
diakopter sorear: oh, oops 19:29
kill it :)
I should have said mono Sprixel.exe -e ''
sorear what are all those numbers?
diakopter you must not have updatd to r318 19:30
sorear fresh checkout an hour ago
At revision 318.
diakopter oh
the numbers are 1..5 over and over again
perlesquel: my FrameBase $F; my $x = 5; $F = _cc.Clone(); $F.Instruction-=2; say(1); say(2); say(3); say(4); say(5); goto $F; say('done'); 19:31
I thought I removed that.
p6eval perlesquel:
..OUTPUT«1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5􏿽xE2
diakopter anyway, just run what I wrote above
ignore the stdout 19:32
note I never said to redirect stdout to a file
heh
if you got that far, perlesque.exe is already created 19:33
so proceed on
sorear no, I didn't redirect stdout to a file 19:34
which was a mistake
screen was using lots and lots of CPU
diakopter oh
sorear stefan@stefans:~/dl/csmeta$ mono Sprixel/bin/Release/Sprixel.exe -e ''
Unhandled Exception: System.IO.FileNotFoundException: Could not find file "/home/stefan/dl/csmeta/-e".
what does this mean
diakopter ok, oops, I forgot
I'm sorry I'm not being clear. 19:35
I'm being very unclear :(
19:35 azert0x joined
diakopter instead of running that line there, 19:35
proceed to the next step I mentioned, which is "to run perlesque code"
mono -O=-all,cfold perlesque.exe file-to-run
mono -O=-all,cfold Sprixel/bin/Release/perlesque.exe file-to-run
sorear can I run code not in files? 19:36
diakopter I thought so.. 19:37
sorear ok, it's still not working.
pugssvn r31129 | lwall++ | [STD] termish should reset $*MULTINESS as noted by jnthn++ 19:38
sorear pastie.org/993246
diakopter another thing I forgot; currently you have to cd into bin/Sprixel/Release 19:39
sorear did you mean Sprixel/bin/Release 19:40
diakopter yes; sorry :)
sorear \o/ 19:41
it works
19:42 kst left
diakopter startup time for perlesque.exe is kinda high, but I hope to figure out how to make that greatly diminished - by rewriting the grammar compiler (again). 19:42
but it should be quite fast to parse sizable chunks of perlesque code 19:43
19:43 occamshatchet joined
diakopter valid perlesque code, that is :D 19:43
you can run the tests, too. one of them fails (it's TODO, while I'm still figuring out how to solve it) 19:44
19:44 azert0x_ joined
diakopter oh, the test runner needs rewritten 19:44
since calling Sprixel.exe makes it regenerate perlesque.exe every time 19:45
19:45 Lorn left 19:46 kst joined
TimToady I suppose it's time to start removing the sops to gimme5 from STD.pm6, such as hardwiring objects as hashes, and using real accessors (which viv can turn back into hash accesses if it likes) 19:52
dalek meta: r319 | diakopter++ | trunk/Sprixel/run_tests.sh:
[perlesque] update run_tests.sh
meta: r320 | diakopter++ | trunk/Sprixel/Main.cs:
[perlesque] remove silly default code
diakopter sorear: do you feel you have a good enough grasp of the perlesque syntax/expressivity? 20:01
I would be glad to detail it
dalek meta: r321 | diakopter++ | trunk/Sprixel/t/p (3 files):
[perlesque] comment out the tests pmurias fatally broke :)
20:02
20:03 Psyche^ joined 20:04 uvtc joined
lue grr... where's a good place to upload some of my P6 merchandise? 20:05
[wordpress needs to let me upload tarballs :/]
uvtc Hi. I've been writing down some "quickstart" notes for Perl 6. They are at www.unexpected-vortices.com/docs/de...start.html . If anyone has any corrections or opinions, please let me know.
jnthn rakudo: say Attribute ~~ Any
p6eval rakudo e67ef3: OUTPUT«1␤»
jnthn rakudo: say Attribute.new.perl 20:06
p6eval rakudo e67ef3: OUTPUT«Method 'perl' not found for invocant of class 'Attribute'␤ in main program body at line 11:/tmp/K4kQ3wY3lz␤»
pmichaud uvtc: you might want to call them "quickstart notes for Rakudo", since Perl 6 is just a language.
For example, in "Installation", I see...
"Perl 6 comes in 2 parts: Rakudo (the Perl 6 compiler), and Parrot (the virtual machine)..."
this is slightly misleading, as there is no "official Perl 6" 20:07
uvtc pmichaud: Ah, good point. Thanks. Will correct that.
20:07 Patterner left, Psyche^ is now known as Patterner 20:08 azert0x_ left
pmichaud on my ubuntu system, I just install the "libicu-dev" package, which doesn't seem to require a number. 20:08
20:08 azert0x_ joined
pmichaud not sure why I chose -dev, though. Maybe I needed it at one point to do development. 20:09
20:11 szabgab left
uvtc pmichaud: (re. libicu) Oooh. Good point. I built Rakudo and Parrot without it, but using that package name makes things just a bit simpler. 20:11
pmichaud: edit: whoops. I *do* have it installed.
pmichaud yeah, I'm wondering if -dev is in fact required for it to work. I know that on my ubuntu system, I've often needed libreadline5-dev in order to get readline support in parrot/rakudo to work. 20:12
so some things seem to require the -dev package. 20:13
dalek kudo: b56b5e6 | jonathan++ | src/metamodel/ClassHOW.pir:
Start to fix up .^attributes somewhat. This at least resolves an RT, but we
kudo: 6dd7efa | jonathan++ | src/Perl6/Grammar.pm:
Fix a $*MULTINESS leak.
kudo: 01ef15a | jonathan++ | (2 files):
Attribute should inherit from Any; requires a little bit of re-ordering of the
lue Anyone know of a good place to put a couple of tarballs up? It's P6 related, so I was thinking the pugs repo....
pmichaud lue: what's in the tarballs? 20:14
20:14 azert0x_ left 20:15 azert0x left
pugssvn r31130 | jnthn++ | [t/spec] Fudge some of attributes.t - we can run the majority of it now. 20:15
lue one has merchandise svgs, the other has the other in png format. 20:16
[If it were to go to pugs, it'd be worth it to upload the whole folder, not a tarball]
s/has the other/has the same stuff/ 20:17
uvtc pmichaud: updated. Thanks. 20:19
diakopter sorear: around?
lue I was thinking it'd fit well in the misc/ folder 20:21
uvtc Gotta go. Any other input, please don't hesitate to email (addr in footer). Thanks. 20:22
diakopter perlesque: sub factorial(int $a --> int) { if $a <= 1 { return 1 }; return factorial($a-1) * $a }; say(factorial(15));
p6eval perlesque: OUTPUT«2004310016␤»
20:22 uvtc left
pugssvn r31131 | jnthn++ | [t/spec] Add a test for the multi leakage but I accidentally in the Rakudo setting. 20:23
jnthn s/but/bug/
gah, wish there was an svn --amend :-)
20:28 azert0x joined 20:30 finanalyst left
lue afk # and then uploading p6 merchandise pictures 20:35
dalek kudo: 22dcb5c | jonathan++ | t/spectest.data:
Turn on S12-introspection/attributes.t.
20:36
20:39 pyrimidine joined 20:40 patrickas joined
patrickas sa3ideh perlsixers 20:40
sorear diakopter: I know very little. perlesque in my mind is basically "simply-typed IronNQP with call/cc"
patrickas rakudo: for &map.candidates -> $m { say $m.signature.perl; }
p6eval rakudo e67ef3: OUTPUT«:(&mapper, *@values)␤»
sorear pmichaud: on Debian-derived distributions, -dev is almost always required for FFI work 20:41
pmichaud: in order to ensure that you always compile against the correct library version while allowing more than one to be installed, Debian policy puts the /usr/lib/libfoo.so -> /usr/lib/libfoo.so.1.2.3.4 symlink in the same package as /usr/include/foo.h 20:42
pmichaud: this is fine for compiled code, but if you're doing dlopen("libfoo.so")... you need to depend on -dev :/ 20:43
diakopter sorear: that's mostly correct 20:44
sorear: and mostly complete
pugssvn r31132 | lwall++ | [STD] switch .<_from> and .<_pos> hash lookups to using .from and .pos accessors
sorear pmichaud: www.debian.org/doc/debian-policy/ch...edlibs-dev 20:45
20:45 eternaleye joined
sorear diakopter: back. 20:45
diakopter sorear: what you're missing is that the complete CLR base class library is also at your disposal
(which is gargantuan, really)
sorear yes. and I know nothing about it 20:46
diakopter sorear: but, consider me your gateway/portal for accessing that library :)
sorear what's a good reference?
diakopter msdn is the definitive reference, but it's ... enormous. it's better to ask a search engine naively 20:47
or me
or jnthn
20:47 Guest24348 left
diakopter sorear: basically I'm going to follow your lead. just emit whatever code/API you feel like, I'll write the api/wrappers/glue for it 20:49
pugssvn r31133 | jnthn++ | [t/spec] Unfudge tests for RT#65514 and add a couple of extra ones for it too.
diakopter sorear: in other words, code blindly (without testing) :) 20:50
(just to get some code emitted)
20:50 |Jedai| joined
diakopter and I'll fix it up 20:50
rakudo: sub factorial(Int $a --> Int) { if $a <= 1 { return 1 }; return factorial($a-1) * $a }; say(factorial(12)); 20:52
p6eval rakudo 22dcb5: OUTPUT«479001600␤»
diakopter perlesque: sub factorial(int $a --> int) { if $a <= 1 { return 1 }; return factorial($a-1) * $a }; say(factorial(12));
p6eval perlesque: OUTPUT«479001600␤»
diakopter whee
I got the startup time of perlesque p6eval reduced :)
(finally)
20:53 Jedai left
dalek kudo: 8befeb2 | jonathan++ | src/core/operators.pm:
Implement the non-role case of does (and thus but, which just delegates to
20:53
diakopter sorear: do you have anything started in viv? feel free to commit it if you want any feedback... 20:54
stupid me bought a sony vaio notebook 2 years ago, not knowing the bios locked me out of Intel VT and external monitor rotation. found the hack to obtain VT, but can't find one for rotation. :( 20:55
patrickas rakudo: for 1..Inf {.say;last; } 20:56
p6eval rakudo 22dcb5: ( no output )
sorear VT? 21:00
diakopter hardware virtualization 21:01
en.wikipedia.org/wiki/Intel_VT 21:02
sorear aha 21:03
so, what, do they sell a high-priced model with VT enabled?
diakopter no; no vaio has it
sorear is this the new 486SX "let's cut the Vcc trace to the integrated coprocessor and call it a cheap model"? 21:04
dalek kudo: 609fd63 | jonathan++ | src/Perl6/Actions.pm:
Add a missing .node in term:sym<name>, which happily gets us reporting sub not
21:05
diakopter I have no idea; did you see my comments above re: viv/perlesque?
sorear yes
diakopter are you ok with that plan? 21:06
sorear vaguely
I worry I'll change too much
diakopter ah
diakopter is reminded of the arrow practice targets in Disney's Robin Hood 21:07
don't worry about changing too much; there's no such threshold. we'll all throw away most of our code anyway eventually 21:08
21:08 kensanata joined
diakopter I'd just like to see the general structure/architecture 21:09
21:12 ispeak_ joined 21:15 plobsing joined 21:16 kensanata left, Ross left
moritz_ rakudo: my $x = 3 but False; say "foo" if $x; 21:17
p6eval rakudo 22dcb5: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'. Available candidates are:␤:(Mu $do-it-to-me, Role $r)␤:(Mu $do-it-to-me, ConcreteRole $r)␤:(Mu $do-it-to-me, (Parcel) $roles)␤␤ in 'infix:<but>' at line 485:CORE.setting␤ in main program body at line
..11:/tmp/APWgva…
moritz_ prints foo\n locally here 21:18
because it doesn't know that True is an enum
sorear diakopter: do the CLR base libraries support dynamically-typed containers?
sorear thinks back to the VB6 Variants of his youth
moritz_ and that enums have different mixin semantics than ordinary values 21:19
patrickas std: class Foo { has Int $.length;} ; my $f = Foo.new(:length(5, 7));
p6eval std 31133: OUTPUT«ok 00:01 109m␤»
patrickas what does that mean ?
oh hello moritz_ 21:20
moritz_ it parsed it OK in 1s using 109m of RAM
should be a run-time error, but STD.pm has no run time (yet?)
patrickas rakudo: class Foo { has Int $.length; method p {say $.length;} } ; my $f = Foo.new(:length(5, 7)); $f.p; 21:21
p6eval rakudo 22dcb5: OUTPUT«57␤»
patrickas It's from perl6advent.wordpress.com/2009/12/2...erloading/ 21:22
moritz_ :(
pugssvn r31134 | moritz++ | [t/spec] test for RT #75446, offby1 line number report for non-existing sub calls
patrickas oh well ... btw what did the problem with p6eval turn out to be? 21:24
moritz_ haven't resolved or tracked it down yet
patrickas I guess it resolved itself then :-) 21:25
moritz_ rakudo: my %h = a => 1, b = >3; say (map { .WHAT }, %h).join(', ')
p6eval rakudo 22dcb5: OUTPUT«===SORRY!===␤Confused at line 11, near "my %h = a "␤»
moritz_ rakudo: my %h = a => 1, b => 3; say (map { .WHAT }, %h).join(', ')
p6eval rakudo 22dcb5: OUTPUT«Pair(), Pair()␤»
moritz_ huh. 21:26
patrickas I thought you had worked on it :-)
21:26 kensanata joined
moritz_ I pushed something to trigger a rebuild 21:26
the version number says the rebuild worked 21:27
it might be lying
patrickas well i checked that colomon's patch is now in
rakudo: for &map.candidates -> $m { say $m.signature.perl; }
p6eval rakudo 22dcb5: OUTPUT«:(&mapper, @values)␤»
patrickas WHAT!
moritz_ so it's still the auld one
diakopter: did you touch the rakudo build on p6eval today? 21:28
patrickas but that's the first thing i checked when I logged in !
I'm going crazy
[23:43] <patrickas> rakudo: for &map.candidates -> $m { say $m.signature.perl; }
moritz_ p6eval keeps two copies of rakudo installs around
patrickas [23:43] <p6eval> rakudo e67ef3: OUTPUT«:(&mapper, *@values)␤»
[
sorear has located the MSDN CORLIB docs 21:29
moritz_ maybe one of them is borked, and other not
patrickas that was an huor ago
yes that must be it
moritz_ the reason is that the rebuild is slow with little memory, so that one still works while the other is being compiled 21:30
patrickas heheh I thought I was going crazy :-)
and how does it switch between them ?
moritz_ you are. This is #perl6. Abandon all dreams of sanity.
patrickas: a symlink
I have ~/p1 and ~/p2 as install locations 21:31
and a symlink ~/p which points to the one that was last rebuilt successfully
patrickas ok but I mean 12 hours ago the patch was not in, one hour ago it was in and now it is not
jnthn moritz_: Actually it does the right thing if you do ! or ? on it.
moritz_: Or anything that results in .Bool
moritz_: It's just that if doesn't actually seem to lead to such a call... 21:32
moritz_ jnthn: and 'if' isn't iffy enough :-)
jnthn :-) 21:33
moritz_: Even if Bool was a true enum though, we'd still end up adding a Bool method that would need to be called.
moritz_ sure 21:34
jnthn moritz_: Though you're right that enum value mix-in semantics are different.
moritz_ so it's really an "if" bug/limitation in this case
jnthn (It'd work about the same but for different reasons.)
Yes, afaict.
patrickas I suspect the current rakudo used by p6eval (22dcb5) doesn't have any of the patches applied today.. can you guys test? moritz_ and jnthn both pushed changes ...
moritz_ patrickas: I've triggered a rebuild on the server now 21:35
hoping, hoping
patrickas ko
jnthn dinner, bbiab
patrickas ok :-)
moritz_ oh noez 21:36
patrickas the build is borked ?
moritz_ we're back at a bunch of "this is not a Perl 6 Str string" failures
build is still running 21:37
such a rewrite throws lots of stuff away... 21:39
rakudo: say .perl for &map.candidates 21:40
p6eval rakudo 609fd6: OUTPUT«{ ... }␤»
pugssvn r31135 | moritz++ | [t/spec] refudged real-strings.t for rakudo, and add test for RT #75456 (numification of match objects with trailing space)
moritz_ rakudo: say .signature.perl for &map.candidates
p6eval rakudo 609fd6: OUTPUT«:(&mapper, *@values)␤»
moritz_ patrickas: should now be new version 21:41
patrickas ok let's hope it lasts :-)
moritz_ I've triggered a second rebuild now, to get the second up-to-date too 21:42
patrickas I am not able to get the one liner at the end of day 23 to work.
not even with alpha!
moritz_ is that curtesy of masak?
patrickas I am afraid my perl6 fu is not up to the task :-( 21:43
the one liner is by "David Burton"
rakudo: say [my@i=0 xx 9,1,0 xx 9];map {say [@i=m {%([^8]>>.fmt("%03b") Z 0,1,1,1,1,0,0,0){@i[($_-1)%19,$_,($_+1)%19].join}},^19]},^9;
p6eval rakudo 609fd6: OUTPUT«0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0␤»
moritz_ look like a flattening issue 21:44
or laziness
hey, it's map in void context
21:45 ispeak_ left 21:46 ispeak_ joined
patrickas obfuscated perl is all fun until you have to understand it :-) 21:46
moritz_ std: say [my@i=0 xx 9,1,0 xx 9];map {say [@i=m {%([^8]>>.fmt("%03b") Z 0,1,1,1,1,0,0,0){@i[($_-1)%19,$_,($_+1)%19].join}},^19]},^9;
p6eval std 31134: OUTPUT«ok 00:01 112m␤»
21:46 ispeak_ left 21:48 Guest33860 left, Sanitoeter left
moritz_ I don't understand it eiher 21:49
21:50 Su-Shee left
sorear perl 6 has a way of shooting you in the foot if you try to obfuscate it 21:50
this could be construed as an advantage
moritz_ the problem is, you can carefully work around the shootings
sorear mberends: do you have any objection to (js) sprixel being removed from pugsrepo? diakopter wants it gone 21:52
moritz_ it's all in version control :-)
so gone is really just "gone" :-) 21:53
sorear yes 21:54
patrickas bbl! I'll try to decipher it later!
moritz_ goes to sleep
pyrimidine moritz_: great job on .trans! 21:58
21:59 pyrimidine left 22:01 Guest33860 joined 22:02 xomas_ left, xomas_ joined, xomas_ left, xomas_ joined
sorear diakopter: 2010-05-11 blog post needs despamming 22:04
22:08 xomas_ left, xomas_ joined
diakopter sorear: thanks :) 22:11
i'll fix
sorear: actually v4 of CLR does support dynamic 22:14
and I think mono has implemented much (all?) of it too
so that could be worth looking at 22:15
22:18 xinming_ joined
diakopter sorear: to look at the CIL assembly, you can do something like: monodis perlesque.exe 22:19
or monodis asmbly_1.exe
if you have a windows box/vm, it's helpful to use Reflector to look at the C# edition too (or VB.net)
afk&
22:22 xinming left 22:25 xabbu42 joined 22:34 dakkar left
sorear Mmmm decompilers. 22:37
23:05 orafu left 23:06 orafu joined 23:27 xabbu42 left
diakopter just comes up with the stupid idea to write the next perlesque stage in perlesque 23:28
duh
afk again& :)
sorear diakopter: does perlesque have any IRs I can look at? 23:33
diakopter: in types.t, where are decimal et al defined? They don't look like CLR types 23:37
diakopter: what happens when + is used in perlesque on object types?
pugssvn r31136 | lwall++ | [CursorBase] attempt to continue when there is only the .syml file 23:39
r31137 | lwall++ | [tryfile] add in t/spec/packages when it makes sense
jnthn sorear: .Net has a Decimal type built in. 23:41
sorear I am unable to find it in the MSDN class hierarchy documentation 23:44
jnthn sorear: msdn.microsoft.com/en-us/library/sy...cimal.aspx
sorear also, it's so nice seeing TimToady effortlessly moving back in even after my shakeup 23:45
TimToady "I'm all shook up!" --Elvis 23:47
sorear TimToady: What parts of the error reporting system do you think belong outside STD?
jnthn hopes TimToady hasn't left the building
TimToady that's okay, I'll probably keep making appearances after I'm dead too... 23:48
sorear I just moved the smallest subset of .panic required to support FAILGOAL
TimToady is wondering why it gets a redef on the perl -c
TimToady has also been looking at EXPR to what is P6oidal
not much, actually 23:49
sorear possibly I screwed up the "remove unneccesary blocks" optimization
TimToady well, it's not very screwed up, given we're still at 95.71% 23:51