»ö« | 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 bNot 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«1234» | ||
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 failedFAILED 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..1not 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 failedFAILED 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«123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345123451234512345xE2 | |||
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 |