|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released! Set by moderator on 11 August 2010. |
|||
|
00:00
Psyche^ joined
|
|||
| rokoteko | rakudo: my $a = Nil; my @b = @($a); say $a.defined ~ "/" ~ @b.defined | 00:05 | |
| p6eval | rakudo 083999: OUTPUT«0/1» | ||
| rokoteko | something to do with context that I dont understand. :) | 00:06 | |
| tylercurtis | rokoteko: nope. Nothing to do with context. | ||
| dalek | ecza: a99a3e1 | sorear++ | (6 files): Attach LTM data to Regex objects |
||
| ecza: ed21875 | sorear++ | (3 files): Implement LTM subrule handling |
|||
| ecza: 4a9b1cf | sorear++ | (2 files): Add support for embedded blocks in regexes |
|||
| ecza: cd0927e | sorear++ | test2.pl: Use {} to much more thoroughly test LTM |
|||
| rokoteko | tylercurtis: mind to elaborate? | ||
| tylercurtis | rakudo: my @a; say @a.elems; say @a.defined; | ||
| p6eval | rakudo 083999: OUTPUT«01» | ||
| tylercurtis | rokoteko: arrays are always defined. | 00:07 | |
| rokoteko | Ah. Else it wouldn't be an array. Of course. | ||
| rakudo: Mu.new() | 00:09 | ||
| p6eval | rakudo 083999: ( no output ) | ||
| rokoteko | rakudo: say Mu.new() | ||
| p6eval | rakudo 083999: ( no output ) | ||
| rokoteko | rakudo: say Mu.new.defined | ||
| p6eval | rakudo 083999: OUTPUT«1» | ||
| tylercurtis | rokoteko: "array" in that sentence being somewhat handwavey, since Array.defined !=== True. But a Positional variable as created with "my @foo" will always be defined, I think. Likewise for "my %foo". | 00:11 | |
| rakudo: my @a; say @a.defined; @a := Array; say @a.defined; # I'm not sure if this is correct behavior. | 00:12 | ||
| p6eval | rakudo 083999: OUTPUT«10» | 00:13 | |
| tylercurtis | If it is, a @a or %b variable could be undefined in some circumstances, but not without doing funny binding things. | ||
| rokoteko | what is absolutely not defined in perl6? | 00:16 | |
| a variable that hasnt been introduced, aka. syntax error? | 00:17 | ||
| tylercurtis | rokoteko: not defined in the sense of not $foo.defined? | ||
| rokoteko | I dunno what .defined() really tests, but yes. as in what I assume it to do. :) | 00:18 | |
| heh it's 3:18 here (3:18am if you are not from the 12 hour clock zone) so I think it's time for me to get to bed also before thinking of too many Mu's :) | 00:19 | ||
| tylercurtis | Type-objects and scalars that have not had anything defined assigned to them (this is just a consequence of the former. | ||
| rakudo: my $f; $f.perl.say | |||
| rokoteko | s/12/24/ | ||
| p6eval | rakudo 083999: OUTPUT«Any» | ||
| rokoteko | rakudo: my $f; my @a := $f; say $f ~ "/" ~ @a | 00:20 | |
| p6eval | rakudo 083999: OUTPUT«Any()/Any()» | ||
| rokoteko | tylercurtis: ok. thanks for explanation. I doubt if I remember anything tomorrow, but I surely do hope my subconscious will handle this for me.. :) | ||
| Sweet dreams everyone! :) | 00:21 | ||
| tylercurtis | Wow. I wouldn't expect that to work... | ||
| masak | sorear: while you're implementing LTM, would you mind explaining how it works? :) | 00:27 | |
| sorear | masak: I'm basically just copying the implementation I did for STD.pm6 two months ago | ||
| masak | ok. | 00:28 | |
| sorear | suppose your parser gets to something like [ for ... | BEGIN ... | \\w+ ... ] (simplified greatly) | ||
| masak | with you so far. | ||
| sorear | since the list is so long, trying each one one at a time would be slow | 00:29 | |
| masak | right. | ||
| and a DFA can do better. | |||
| sorear | and there would be a lot of potential for error, since you'd have to manually keep \\w+ at the end of the list | ||
| masak | right. that's why we have | there instead of || | ||
| sorear: moritz_ sometimes mentions that DFAs don't backtrack, but sometimes we need to backtrack even the declarative part of a regex. how is that solved in your implementation of the LTM? | 00:31 | ||
| sorear | The construction of the DFA eliminates backtracking | 00:32 | |
| we don't turn the declarative parts directly into a DFA | |||
| masak | oh? | ||
| sorear | instead we turn them into an NFA, which is basically a DFA that can backtrack | ||
| masak | and that's enough for our purposes? | ||
| sorear | instead of one next-state per (char, next-state), it has a list of them | ||
| s:2nd/next-/old-// | |||
| masak | right, hence the 'N' in NFA. | 00:33 | |
| sorear | now | ||
| there are 2 basic ways to implement NFAs, an obvious one and a clever one | |||
| you could just do ordinary regex backtracking - when you get to a place with >1 next-state, save a decision point | |||
| masak | right. | 00:34 | |
| that's what PGE and GGE do. | |||
| sorear | but you can also keep a Set of *all* NFA states which are valid at the current position | ||
| masak | sounds like Thompson again. | ||
| sorear | then you never visit a character more than once | ||
| masak | neato. | 00:35 | |
| I'm still eager to try to implement that myself. | |||
| sorear | DFA generation involves generating 1 DFA node per distinct set of NFA states | ||
| so you get a DFA that doesn't backtrack from a NFA that does, with no loss of functionality | |||
| masak | so we do end up with a DFA eventually? | 00:36 | |
| sorear | I briefly implemented this in STD, but it had unusably slow startup time, so I went for a hybrid approach - DFA nodes are generate lazily as they are entered | ||
| a (DFA node, char) tuple can either point to a DFA node, or to a Set(NFA node) thunk | |||
| masak | sounds reasonable. | 00:38 | |
| thanks for the explanation, sorear. | 00:39 | ||
| time for me to try and sleep a bit. :) | |||
| o/ | |||
|
00:39
Visitor99 joined
|
|||
| tylercurtis | sorear: so, you end up with a list of all of the possible matching series of state transitions, and let the one that matched the most of the string win the alternation? | 00:40 | |
| sorear | Yes | 00:42 | |
| Although it's a little more complicated than just winning | 00:43 | ||
| The one that matches the most of the string (and wins on all four tiebreaking rules) gets first choice | |||
| But if the rest of the regex fails, backtracking can use a less-long prefix | |||
| tylercurtis | Right. | 00:44 | |
|
00:49
jimk joined
|
|||
| diakopter | .u CELEBRATION | 00:49 | |
| phenny | diakopter: Sorry, no results for 'CELEBRATION'. | ||
| diakopter | U+1F64C PERSON RAISING BOTH HANDS IN CELEBRATION | 00:50 | |
| sorear | diakopter: phenny still doesn't know what supplementary characters are | 00:52 | |
| tylercurtis | sorear: U+1F64C also doesn't yet officially exist. | 00:54 | |
| diakopter finds it funny that google updates its index of irclog.perlgeek.de/perl6/today every few minutes | 01:07 | ||
| dalek | ecza: fb22be4 | sorear++ | test2.pl: Fix testing of backtracking into LTM groups |
01:08 | |
| ecza: 41f081d | sorear++ | Cursor.cs: Make prefix length handling work properly in subrules |
|||
| diakopter | sorear: does niecza run the p6 testsuite | 01:10 | |
| :) | |||
| sorear | Not the whole thing, no. | 01:13 | |
|
01:20
s1n joined
01:23
ashleydev joined
|
|||
| sorear | <[ ?..Z \\\\.._ ]> # Really, TimToady? | 01:27 | |
|
01:42
Visitor99 left
|
|||
| ingy | hi sorear | 01:42 | |
|
01:42
Visitor99 joined
01:43
s1n joined
|
|||
| ingy | sorear: what's the fastest way to get niecza running on my macbook? | 01:44 | |
| I have a few minutes to try it :) | |||
| TimToady | sorear: yes really | ||
| control chars are done by xoring the 64 bit, so ^? gives you \\x7f, ^@ gives you \\0, ^A gives you \\x01, etc | 01:46 | ||
| it would be one range except that we reserve \\c[...] so we can't use \\c[ | 01:47 | ||
| sorear | and I suppose viv isn't up to the task of <[ ?.._ ]-[ \\[ ]> | 01:48 | |
| gotcha. | |||
| TimToady | well, gimme5 certainly wasn't... | ||
| sorear | ingy: do you already have mono installed? | ||
| TimToady | but given we have \\e for escape, \\c[ is very necessary | 01:49 | |
| *n't | |||
| sorear | I'd be suprised if viv was either. Chararcter classes are suprisingly nasty | ||
|
01:52
thundergnat joined
|
|||
| sorear | ingy: fastest way is to run "xbuild" and "./niecza_eval -e 'say q(hi)'" | 01:52 | |
| there's a dep list in README.pod, I *think* it's up tod ate | |||
| ingy | ok | 01:53 | |
| should I install the default mono? | |||
| it looks huge | 01:54 | ||
| I just want the runtime, yeah? | |||
|
01:54
pnate joined
|
|||
| ingy | not the visual basic compiler, etc | 01:54 | |
| sorear | you want the runtime + the standard library + the build engine + the C# compiler | 01:55 | |
| I think these are all in the 'mono' tarball | |||
| (get a binary package. the mono C# compiler is written in C#, so you need one anyway.) | 01:56 | ||
| ingy | downloading | 02:01 | |
| TimToady | sorear: so it's looking like avoiding the DLR was a good decision... | ||
| btw, I've noticed snaptest is back down to 92%, so something has regressed... | 02:02 | ||
| thundergnat | Newby fumbling around with Rakudo Star here. Quick question: How do you access the match variable in a .subst? | 02:04 | |
| I thought $0 or $/[0], but no happiness. | |||
| say 'abc123def456'.subst(/(\\d+)/, { $0 + 10 }, :g); | 02:05 | ||
| TimToady | it seems it currently passes it in to the closure as the first arg, but that's not how it's supposed to work | ||
|
02:05
_jaldhar joined
|
|||
| TimToady | rakudo: say 'abc123def456'.subst(/(\\d+)/, -> $/ { $0 + 10 }, :g); | 02:05 | |
| p6eval | rakudo 083999: OUTPUT«abc133def466» | ||
| thundergnat | Hmmm. Not what I'm gettin locally. | 02:06 | |
| TimToady | note the -> $/ | ||
| thundergnat | Ah. | ||
| TimToady | it's specced to set $/ in the outer scope, which the inner scope's $/ is supposed to default to | 02:07 | |
| thundergnat | Many thanks. Been trying to wrap my head around that for the past hour or so. | 02:12 | |
|
02:18
fod_ joined
02:23
ycheng joined
02:24
ycheng left
|
|||
| sorear | TimToady: Would you know anything about why ibus-x11 has a 395MB heap? | 02:30 | |
| (suprisingly for a _keyboard driver_, and me being typing, 390 of that is swapped out) | |||
| TimToady | no idea | 02:31 | |
| dalek | ecza: 060d688 | sorear++ | (3 files): Implement backslash escapes (except \\c) and $ @ % { interpolation for strings |
02:33 | |
| ecza: b394a13 | sorear++ | test (2 files): Tests for regex closures + LTM + grammars + backslash escapes are live |
|||
|
02:36
pnate joined
02:40
ashleyde1 joined
|
|||
| pugssvn | r31989 | lwall++ | [STD] reduce **{42} to a warning, since **{$x} is allowed | 02:48 | |
|
02:52
kuzuha joined
|
|||
| kuzuha | hi | 02:53 | |
|
02:53
justatheory joined
02:54
kuzuha joined
|
|||
| TimToady | howdy | 02:54 | |
|
02:55
ashleyde2 joined
|
|||
| au|irc | greetings | 02:55 | |
|
02:55
ashleyde1 left,
ajs joined
|
|||
| sorear | hello | 03:05 | |
| ingy | hihi | 03:06 | |
| pugssvn | r31990 | lwall++ | [sort.t] fix parsefail; reduce op requires whitespace | ||
| sorear | TimToady: The code you just changed isn't supposed to even trigger on **{42} | ||
| TimToady | the , is optional, and has a conditional based on whether it maches | 03:07 | |
| *matches | |||
| and it's a longer token than '{' | |||
| so matches under quantified atom | |||
| sorear | it's supposed to catch uses of x{2,5} | ||
| not x**{2} | 03:08 | ||
| I guess I should have put it under quantifier | |||
| TimToady | that would make more sense, yes | 03:10 | |
| testing | 03:11 | ||
| sorear | the change just mentioned? | 03:12 | |
| TimToady | yes | ||
| (and reverting my patch) | |||
| sorear | ok, I won't try it myself | ||
|
03:12
ashleyde1 joined
|
|||
| TimToady | also have to make it last-chance in LTM or it carps about quantifier quantifies nothing | 03:17 | |
| pugssvn | r31991 | lwall++ | [STD] don't use {N,M} check where quantifier not expected | 03:18 | |
| TimToady | that change puts us back up to 93% :) | 03:19 | |
|
03:19
drbean joined
|
|||
| sorear | \\o/ | 03:19 | |
| dalek | ecza: b2b37b3 | sorear++ | Kernel.cs: Use real exceptions for failures like method not found |
03:22 | |
| ecza: 0644ab9 | sorear++ | Niecza.proj: Add CheckoutSpecTest build target |
|||
| ajs | So... I've been banging my head against BigInt... trying to figure out why it wasn't working. Seems my parrot was compiled without BigInt support | 03:26 | |
| But then why wasn't Q:PIR complaining? Does Rakudo put my modules in a Perl 6 namespace or does my defining BigInt in Perl replace the Parrot pmc? Was my "$P0 = new ['BigInt']" just giving me a new instance of my Perl 6 class? | 03:29 | ||
| sorear | Rakudo puts your modules in a Perl 6 namespace. | 03:31 | |
| tylercurtis | ajs: There are different namespace for each HLL in parrot. | ||
| ajs: if you want to get something from the parrot namespace, you need get_root_global ['parrot'; 'bla'; 'bla'; 'bla'] instead of get_hll_global ['bla'; 'bla'; 'bla']. | 03:33 | ||
| ajs | Strange then... I'd love to know why that worked. Oh well... recompiling now | ||
| You know, with the Oracle lawsuit... maybe now is the time to approach Google about basing Android apps on Perl 6 ;-) | 03:36 | ||
| sorear | That would be insane. | ||
| TimToady | what around here isn't? | 03:37 | |
| diakopter | see "wishful thinking" under tirania.org/blog/archive/2010/Aug-13.html | ||
| ajs | That's a funny blog. C# indeed. Heh. | 03:40 | |
| diakopter | I didn't find it funny | 03:42 | |
| ajs | wait... was that serious? Oh. that's a sea slug of a different texture. | 03:43 | |
| diakopter | was my posting of the link serious? or was the blog entry serious? of course; it's written by a VP of Novell, Miguel de Icaza, who started the Mono project in 2000 when Microsoft announced the .NET project | 03:44 | |
| and wrote most of it | |||
| ajs | Oh I didn't read that it was a Miguel post. That explains a great deal. | ||
| diakopter | and the section I referenced was aptly and humbly titled Wishful Thinking :) | 03:45 | |
| sorear | I assure you the lawsuit is serious | 03:46 | |
| ajs | heh | ||
| diakopter | did someone doubt the lawsuit is serious? | ||
| sorear wonders what Microsoft sees in .NET | |||
| ajs | hahaha | ||
| cash? | |||
| sorear | how? it's not being sold, and it doesn't increase the value of Windows relative to OSX/Linux | 03:47 | |
| I guess it could be useful in convincing people to upgrade from XP to Win7 | |||
| diakopter: it looked like ajs was | 03:48 | ||
| ajs | I did not doubt the lawsuit was serious... well, it's not serious in that Oracle doesn't actually think they'll win, but they're not fishing for a win, they're fishing for a settlement from Google that involves a piece of the Android pie. | 03:51 | |
|
03:55
ashleyde1 joined
|
|||
| ajs | Ah, I remember, back in the day, picketing Lotus with RMS when they did this sort of thing... the good old days ;-) | 03:56 | |
|
03:59
drbean joined
|
|||
| ajs | good lord, that was 21 years ago... Perl was 2 years old. | 03:59 | |
|
04:00
envi^home joined
|
|||
| ajs | OK, yeah, my BigInt problem was that I was picking up BigInt from perl's namespace, not Parrot's. If I re-name my BigInt class, I find the Parrot one. | 04:00 | |
| sorear | you hung out with RMS back before he went insane? | 04:03 | |
| ajs | There was no "before" ... there were just degrees | 04:04 | |
|
04:13
drbean joined
04:22
Visitor99 left
04:27
redicaps joined
04:28
redicaps left
04:34
drbean joined
|
|||
| dalek | ecza: 986e36b | sorear++ | (3 files): Implement <sym> simple cases |
04:35 | |
|
04:38
orafu joined
04:46
araujo joined
04:52
drbean joined
04:55
drbean_ joined
|
|||
| sorear | Is there a difference between proto token and proto rule? | 04:55 | |
| TimToady | there will be when we make proto a wrapper around the specific subrule | 04:57 | |
| though not in the typical case where the whole body is {*} | |||
| sorear | I wonder if scope_declarator(:$*endsym = 'nofun') {*} etc could become scoep_declarator { <sym> <.nofun> * } | 05:00 | |
| TimToady | not sure | 05:01 | |
| the inside would be {*}, not * | |||
| (or it's a quantifier) | 05:02 | ||
| sorear | Is {*} special syntax? | ||
| TimToady | yes | ||
| see STD.pm6 line 4790 | 05:04 | ||
| sorear | What's the difference between [*] and {*}? | 05:05 | |
| TimToady | and 1251 | ||
| [*] doesn't terminate LTM, I suppose | |||
| sorear | does token/regex affect the function of proto $^a $^b {*} ? | 05:07 | |
| TimToady | I don't understand the question | ||
| sorear | proto rule foo {*} | ||
| proto token foo {*} | 05:08 | ||
| # Are these equivalent? | |||
| TimToady | yes | ||
| what does that have to do with placeholders? | |||
| sorear | the placeholders were being metasyntax there | ||
|
05:12
isBEKaml joined
05:15
Axius joined
05:27
jrtayloriv joined
05:33
Guest23195 joined
05:35
jrtayloriv left
05:41
macroron joined
05:46
wolfbytes joined
05:55
drbean_ left
|
|||
| ingy | sorear: xbuilding... | 06:18 | |
| sorear: | 06:23 | ||
| AOT compilation is not supported on this platform. | |||
| /Users/ingy/src/niecza/Niecza.proj: error : Command 'mono --aot Kernel.dll' exited with code: 1. | |||
| sorear | You're the second person to experience a problem which the author of xbuild says is impossible and I can't reproduce locally. | 06:24 | |
| ingy | huh | 06:25 | |
| sorear | Fortunately, there's a workaround switch; set UseAOT to N in Niecza.proj | ||
| ingy | sorear: works | 06:26 | |
| super fast | |||
| sorear | or maybe not. looks like I removed the old "guaranteed to work" one | ||
| super fast? | 06:27 | ||
| ingy | only about 7 seconds for: ./niecza_eval -e 'say "hi"' | ||
| sorear | locally, disabling the AOT compiler adds about 10 seconds to niecza_eval run time | ||
| which is 3-6 seconds normally | 06:28 | ||
| ingy | anyway, now I can play with it | ||
| sorear needs to figure out what about the code it is that gives Mono's JIT a hissyfit | |||
| loading a 1MB library really shouldn't take 10 seconds | |||
| ingy | I'm used to taking a a shit while rakudo's make test runs on my modules | 06:29 | |
|
06:38
cls_bsd left
06:48
Mowah joined
|
|||
| sorear | \\o/ | 07:01 | |
| dalek | ecza: 3ba22dc | sorear++ | (10 files): Implement protoregexes |
07:02 | |
|
07:19
coffeeyy joined
07:22
molaf joined
07:31
clem joined
|
|||
| diakopter | sorear: by "1MB library" do you mean a .dll? | 07:40 | |
| sorear: there are several JIT options (on by default) that can be disabled on the command line to mono | 07:43 | ||
| sorear | diakopter: yeah | 07:56 | |
| actually it's only 600k.. hasn't *quite* caught back up | 07:57 | ||
|
08:25
awwaiid joined
08:45
tadzik joined
|
|||
| tadzik | morning | 08:45 | |
| sorear | hello | 08:51 | |
|
08:51
Axius joined
|
|||
| moritz_ | good morning | 08:52 | |
| phenny | moritz_: 13 Aug 22:50Z <tadzik> tell moritz_ the Channel Index link on irc.pugscode.org is broken, shows a calendar for #perl6 rather than a channel list | ||
| moritz_ | that's the index of entries for that channel, yes | 08:53 | |
| tadzik | hm | ||
| moritz_ | see irclog.perlgeek.de/ for the overview of channels | ||
| better names welcome :-) | |||
|
09:08
Kiran_ joined
|
|||
| dalek | ecza: edaad89 | sorear++ | (6 files): Avoid traversing outer chains for uncloned values instead of in the pad chain, so they can be accessed using much less code. Cuts 50K off SAFE.dll. |
09:11 | |
|
09:14
isBEKaml joined
09:24
karb joined,
barney joined
09:25
kar joined
|
|||
| clem | hi,I am a new guy to perl6,what's the *.pm file? | 09:30 | |
| sorear | Perl Module | ||
| a single source file that isn't the main program | |||
| clem | sorear: thanks | ||
|
09:32
karb joined
09:45
tadzik joined
|
|||
| isBEKaml | .u U+2735 | 09:49 | |
| phenny | isBEKaml: Sorry, no results | ||
| isBEKaml | .u tone | 09:50 | |
| phenny | U+0EC8 LAO TONE MAI EK (◌່) | ||
| dalek | ecza: ea4bc04 | sorear++ | (3 files): Use indexed variables for compiler temporaries |
09:53 | |
| isBEKaml | are inline comments valid within quotes ? | 10:03 | |
| rakudo: say " foo #`{ Im a comment } bar "; | |||
| p6eval | rakudo 083999: OUTPUT«Could not find sub &comment in main program body at line 22:/tmp/Z6AHXODvZf» | ||
|
10:03
M_o_C joined
|
|||
| isBEKaml | rakudo: say #`{ Im a comment } " foo bar "; | 10:04 | |
| p6eval | rakudo 083999: OUTPUT« foo bar » | ||
| dalek | ecza: 0e0c3d5 | sorear++ | (3 files): Use out of line code for throwing exceptions |
10:05 | |
| sorear | isBEKaml: *no* comments are valid within quotes. | 10:06 | |
| isBEKaml | right | 10:07 | |
| sorear | niecza: say '????'.chars | 10:09 | |
| p6eval | niecza edaad89: OUTPUT«2» | ||
| jnthn | morning | ||
| (ish) :-) | 10:10 | ||
| sorear | hello jnthn | ||
| isBEKaml | hi, jnthn :) | 10:11 | |
| sorear: what charset was that? I have set my client to utf8 and I don't see it proper. | 10:17 | ||
| sorear | utf8 | 10:19 | |
| it's a character that doesn't officially exist yet, you won't have it in any of your fonts | |||
| moreover, it's a character with index >64K | |||
| .net 'char' is 16 bits type | 10:20 | ||
|
10:20
kst joined
|
|||
| isBEKaml | I see. | 10:21 | |
|
10:22
envi^home joined
|
|||
| sorear | I was wondering if niecza would blow up on seeing it, or if it would do something else | 10:22 | |
|
10:22
isBEKaml_ joined,
isBEKaml_ left
|
|||
| sorear has reduced SAFE.dll from 600k to 400k... out of low-hanging fruit in the code generator, I think | 10:23 | ||
|
10:23
meppl joined
|
|||
| isBEKaml | oh, all I saw was 01F 64C. :) | 10:23 | |
| dalek | ecza: b251ab8 | sorear++ | (2 files): Use a more efficient encoding of filename data |
10:24 | |
|
10:36
orafu joined
10:51
orafu joined
10:59
whiteknight joined
11:06
pmurias joined
11:08
Mowah joined
11:09
masak joined
|
|||
| masak | weekend! whee! \\o/ | 11:10 | |
| jnthn | wheekend! \\o/ | ||
|
11:10
redicaps joined
|
|||
| tadzik | it's almost half of August! :( | 11:10 | |
| lolitsweekend | 11:11 | ||
|
11:19
zby_home joined
|
|||
| masak | std: / x ** {42} / | 11:25 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mUnsupported use of {42} as general quantifier; in Perl 6 please use X**42 at /tmp/Pde3G66tj6 line 1:------> [32m/ x ** {42}[33m⏏[31m /[0mCheck failedFAILED 00:01 114m» | ||
| masak | I find this highly suspect. | 11:26 | |
| don't see anything wrong with it. | |||
| isBEKaml | std: / x ** {1,42} / | 11:27 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mUnsupported use of {1,42} as general quantifier; in Perl 6 please use X**1..42 at /tmp/Kr1NJYLMDE line 1:------> [32m/ x ** {1,42}[33m⏏[31m /[0mCheck failedFAILED 00:01 114m» | ||
| masak | right. | ||
| isBEKaml | huh? | ||
| doesn't this mean match x min 1 time, max 42 times ? | 11:28 | ||
| masak | so maybe tonight's discussion between TimToady and sorear was saying that the latter error inadvertently triggers on the former case too. | ||
| isBEKaml: in Perl 5 it does. | |||
| isBEKaml: in Perl 6 we use a range. | |||
| just like the error message says. | |||
| isBEKaml | :D I find it hard to compartmentalise p5 and p5. | 11:29 | |
| s:2nd/5/6 | |||
| masak | I can see that :P | 11:32 | |
| isBEKaml | rakudo: my @a //= list(1,2,3); @a.perl.say; | 11:33 | |
| p6eval | rakudo 083999: OUTPUT«maximum recursion depth exceeded in 'Block::count' at line 5614:CORE.setting in 'Block::count' at line 5618:CORE.setting in 'Any::join' at line 1 in 'Array::perl' at line 2826:CORE.setting in <anon> at line 2826:CORE.setting in 'Any::join' at line 1 in | ||
| ..'Array::perl' a… | |||
| isBEKaml | :/ | ||
| masak: you got it right! :P | |||
| masak | isBEKaml: I'm thinking about how to implement simple subs in Yapsi. | 11:34 | |
| isBEKaml: there's also a lot of low-hanging fruit possible right now, in terms of things that can be implemented. | |||
| isBEKaml | masak: I'm always on the lookout for LHFs. I'm currently going over the synopses(long since I touched one. :s) | 11:35 | |
| masak | nice. anything in particular you're looking for in the synopses? | 11:36 | |
| isBEKaml | masak: no, just reading over whatever I had read since last. | ||
| work constraints didn't give me any opportunity to dedicate time to go over synopses or learn more about p6. So I was just trying to learn-on-the-go from this channel. :P | 11:38 | ||
| masak | tadzik: commit pulled into ufo. thanks. tadzik++ | ||
| isBEKaml: in my experience, the synopses themselves give a quite shallow insight into Perl 6. actually writing code is what really helps. | 11:39 | ||
| isBEKaml | masak: even to begin writing code, you'd need some foundation to start with! :D | ||
| masak | the lack of such never stopped me. :P | 11:40 | |
| isBEKaml | so far, I haven't even got to the extent of writing good code. (babble babbly babble) :P | ||
|
11:40
ajs joined
|
|||
| masak | good code is more about common sense and experience than about extreme familiarity with the programming language. | 11:40 | |
| isBEKaml | oh, not extremes or expert level. just dip in, watch out for slippery sand and wade into the sea. :) | 11:41 | |
| I haven't even succeeded in balancing myself on the sand. :P | |||
|
11:45
azert0x joined
11:48
echosystm joined
|
|||
| isBEKaml | masak: yapsi no longer uses alpha? | 11:50 | |
| perl6? | |||
| #!/usr/bin/env perl6 | 11:51 | ||
| masak | correct. | ||
| that happened during the refactor right before this month's release. | |||
| I had considered it, and took the plunge when I realized how easy it was. | |||
| isBEKaml | why did we need alpha in the first place ? | ||
| masak | back in April, that was what I wrote stuff in. | ||
| you probably would've too :) | 11:52 | ||
| isBEKaml | legacy. :) | ||
| time to use poc to install ufo. :) | |||
| masak | let me know how it goes. | 11:53 | |
| I'm not sure poc will generate a Makefile that puts bin/ufo in any install location. :/ | |||
| ajs | Question about overloading | 11:54 | |
| Tene | lolitsmasak | ||
| ajs | I have this in my BigInt.pm: our BigInt multi sub infix:<+>(BigInt $lhs, BigInt $rhs) is export { ... } | ||
| isBEKaml | masak: I'm surprised. no README ? | ||
| how do i pass an install target? | 11:55 | ||
| masak | work in progress :/ | ||
| ajs | But when I try do to $a + $b where both are BigInt, it seems to convert both to numerics | ||
| Am I doing something wrong, there? | |||
| masak | isBEKaml: you don't, currently. it's meant to be automatic. (but possibly overridable, that's a nice idea) | ||
| currently it's neither. | |||
| isBEKaml | :/ | ||
| masak | ajs: you are aware that Int is spec'd to be a bigint type already? | 11:56 | |
| ajs | yes, but it doesn't work that way, and I want access to Parrot's BigInt PMC from Perl 6 | ||
| masak | isBEKaml: I wasn't planning on hacking on poc now, but I could try and fic it for you quickly. | ||
| ajs: I see. no, I don't know why it converts to numerics. sounds like a #parrot question. | 11:57 | ||
| isBEKaml | masak: ok, anything I need to do? | ||
| masak | isBEKaml: hold on for 10 minutes or so :) | ||
| isBEKaml | :) | ||
| ajs | Um... masak, this isn't a Parrot thing. My BigInt is a Perl class. It encapsulates an attribute that holds the Parrot BigInt | 11:58 | |
| masak | ajs: right, but the + operation you delegate to is on the Parrot level, isn't it? | ||
| ajs | There is a Parrot call within my inline<+>, but that routine is never invoked, that's my problem | 11:59 | |
| isBEKaml | masak: I'm reading over the code. Nicely demarcated responsibilities across classes. :) | ||
| masak | isBEKaml: in pls? yes, that's the whole idea. | 12:00 | |
| isBEKaml | masak: nice. | ||
| masak | isBEKaml: it's probably the most elaborate Perl 6 type hierarchy I've created to date. | ||
|
12:00
nadim joined
|
|||
| isBEKaml | Not even GGE ? :) | 12:01 | |
| ajs | Actually, I take that back. I'm not sure what it's doing. It's not calling my .Numeric or .Int either.... I need to look into this some more. I've done something odd, clearly. | ||
| masak | GGE might be on par with this one. but it ended up being a quite faithful copy of PGE's hierarchy... so I didn't really create it :) | ||
| isBEKaml | masak: I find the MAIN sub that takes 3 arguments. so, um, how do I use them? | 12:02 | |
| masak | isBEKaml: ./proof-of-concept --force ufo | ||
| (for example) | |||
| eventually, that'll be 'pls install --force ufo' | 12:03 | ||
| isBEKaml | I'm not forcing it. :) | 12:04 | |
| masak | no, probably no need. | ||
|
12:04
desertm4x joined
|
|||
| isBEKaml | Segfaulted :O | 12:05 | |
| Hash: unsupported key_type | |||
| Segmentation fault | |||
| that was on Star. | |||
| masak | I'd be very happy if you could isolate that error for me. | 12:06 | |
| isBEKaml | yes, looking over it. | ||
| masak | isBEKaml++ | ||
|
12:15
isBEKaml joined
|
|||
| isBEKaml | wtf? it seems to work with the latest rakudo, but not star. | 12:20 | |
| well, not latest. built 2 days ago. | |||
| masak | then there's probably no need to go bug-hunting. | 12:21 | |
|
12:21
Mowah joined
|
|||
| isBEKaml | anyway, it fetched ufo. but tests failed and I'm not seeing the log file that it says I should see. | 12:22 | |
| Couldn't install ufo: the test step failed. | 12:23 | ||
| You'll find a log file `test-ufo.log` in the current | |||
| masak | isBEKaml: noted. will try to reproduce that here. | ||
| huh. for me, the fetch step failed. | 12:24 | ||
| isBEKaml | :) | 12:25 | |
| masak | ah, it's a lingering cache/ dir with no perms. removing and retrying. | ||
| isBEKaml | do you see any logs? | ||
| masak | yes, I had a fetch-ufo.log telling me exactly that. | ||
| right. the test step fails here as well. | 12:26 | ||
| investigating. | |||
| ok. I also get no logfile for that. | 12:27 | ||
| there's no Makefile in cache/ufo/ | |||
| wonder why that is. | |||
| isBEKaml++ # this is exactly the kind of testing pls needs | |||
| isBEKaml | erm, about ufo, why do you need to do a 'which' on ufo when I'm providing the exact path? | ||
| which: no ufo in (/usr/local/bin:/usr/bin:.... | 12:28 | ||
| masak | I also just saw that in bin/ufo. I don't know why ingy added that. | ||
| for some reason, ufo wants to find its installed self nowadays. | |||
| isBEKaml | odd.. | 12:29 | |
| btw, we don't need ufo in the makefile anymore since the job of generating the makefile is already done by ufo and it should get out the way, right? | 12:31 | ||
| I don't see why we need UFO in the makefile? | |||
| transitive dependency checking? | 12:32 | ||
| masak | I'm afraid I can't answer that. | ||
| maybe I should just remove that line and see what ingy complains about. | |||
| either that, or just ask him. :P | |||
| isBEKaml | phenny: ask ingy why we need UFO defined in the generated makefile that it generates. | 12:33 | |
| phenny | isBEKaml: I'll pass that on when ingy is around. | ||
| isBEKaml | we'll just bug him with that qq. :P | ||
| masak | ah. proof-of-concept doesn't generate the Makefile, because it doesn't find a lib/ dir. | 12:35 | |
| that's probably wrong nowadays, thanks to lib/-less projects such as ufo. | |||
| removing that clause. | 12:36 | ||
| in the long run, we'll want to turn the ufo part of proof-of-concept into something that doesn't generate a Makefile, but runs things in pure Perl 6. | |||
| actually, in the not-so-long run, we'll want that. :) | 12:37 | ||
| isBEKaml | ufo part of POC? | ||
| ah, I see now. :) | 12:38 | ||
| masak | in a weak moment, I copy-pasted ufo into POC. | ||
| the real ufo and the copy inside POC are now two quite different beasts. they diverged really wuickly, actually. | 12:39 | ||
|
12:40
ruoso joined
|
|||
| isBEKaml | I see. weak-moment. :D | 12:40 | |
| "weak-moment" has a different connotation where I live. | 12:41 | ||
| :P | |||
| masak | do tell. | ||
| India, right? | |||
| isBEKaml | women. Men fall prey to scheming women in their weak moments. :D | 12:42 | |
| yes, India. | |||
| masak | rakudo: my @files = dir("a-dir-that-does-not-exist"); | ||
| p6eval | rakudo 083999: OUTPUT«Operation not permitted in safe mode in 'Safe::forbidden' at line 2:/tmp/afe6zdg5no in main program body at line 22:/tmp/afe6zdg5no» | ||
| masak | isBEKaml: I think that connotation exists in English as well. | ||
| maybe it's even the dominant one. | |||
|
12:43
redicaps left
|
|||
| masak | I should probably have said "a moment of temporary confusion" :) | 12:43 | |
| isBEKaml | masak: oh, I don't know. I find that used here sometimes. :) | ||
| masak | or It Seemed Like a Good Idea at The Time. | ||
| jnthn | Heh, "in a moment of weakness" has quite wide range of meaning rather than just that in my dialect of English, at least. :-) | ||
| isBEKaml | That's Better(tm). :P | 12:44 | |
| masak | isBEKaml: now dir() dies because it didn't find the file it was looking for. fixing. | ||
| isBEKaml | Let the Briton give us more insight into ther native language! :) | 12:45 | |
| masak: aren't you checking for makefile with :e switch? | 12:46 | ||
| build() method. | |||
| masak | isBEKaml: yes, but ufo doesn't have one. | 12:47 | |
| isBEKaml: it's self-hosting nowadays. | |||
| so poc tries to build one. | |||
| isBEKaml | I see. | ||
| masak | but currently it has a number of checks that prevent it from doing so with a project without a lib/ dir, or without modules in the lib/ dir, etc. | 12:48 | |
| all of which assumptions are wrong about ufo. | |||
| isBEKaml | purge ufo from poc and refactor the rest? | ||
| pmichaud | good morning, #perl6 | 12:49 | |
| masak | that's the idea. right now I'm just trying to make ufo install. | ||
| isBEKaml | more precisely, purge the ufo clone from poc. | ||
| masak | pmichaud: morning! | ||
| isBEKaml: aye. | |||
| isBEKaml | morning, pm! :) | 12:50 | |
| masak | isBEKaml: if you want to help with that, I'd much appreciate it. | ||
| isBEKaml | masak: sure! by now, I have a hazy idea about the structure of poc. | ||
| masak | excellent. | ||
| my "10-minute" patch seems to be nearing completion. | 12:51 | ||
| isBEKaml | ufo should be a prerequisite then, right? | ||
| masak | I'm sacrificing a bit of the current ufo in poc, since that's going away anyway. | ||
| nope. | |||
| it's more like poc/pls will have its own built-in pure-Perl6 ufo. | |||
| isBEKaml | install ufo if not found. not a prerequisite. | ||
| ? | |||
| masak | no, ufo is completely separate from pls. | 12:52 | |
| that's why I copied it in in the first place. | |||
| because I figured it's a different thing, but we want to do the same stuff. | |||
| ok, now it creates the Makefile. | |||
| test step still fails. | |||
| Unable to open filehandle from path 't/' | 12:53 | ||
| heh :) | |||
| isBEKaml | :) | ||
| masak | ok, so I'll just create a t/ dir then. | ||
| the test step now works. the install step fails. | 12:54 | ||
| and it gives odd error output. | 12:55 | ||
| isBEKaml | ? | ||
| masak | Couldn't install ufo: the 0 step failed. | ||
| there's no 0 step. | |||
| rakudo: my $a = "a"; my $b = do given $a { when "a" { 42 ?? "foo" !! "bar" } }; say $b | 12:56 | ||
| p6eval | rakudo 083999: OUTPUT«foo» | 12:57 | |
| masak | hm. | ||
| isBEKaml | perhaps it doesn't match any of the states? perhaps there's no "built" state? | ||
| masak | investigating. | 12:58 | |
| still don't see where the 0 is coming from. | |||
| isBEKaml | rakudo: my $a = "buuss"; my $b = do given $a { when "a" { 42 ?? "foo" !! "bar" } }; say $b | ||
| p6eval | rakudo 083999: OUTPUT«0» | ||
| isBEKaml | :) | ||
| there. | |||
| masak | isBEKaml++ | 12:59 | |
| isBEKaml | masak: ^^ | ||
| masak submits rakudobug | |||
| rakudo: say do given 'x' { when 'y' {} } | |||
| p6eval | rakudo 083999: OUTPUT«0» | ||
| masak | I think it should be Nil or something. | 13:00 | |
|
13:00
araujo joined
|
|||
| masak | or maybe something undefined :P | 13:00 | |
| isBEKaml | I'd hazard a guess at Any() | ||
| masak | ah; the state is 'tested' and there's no 'when' for that. | ||
| isBEKaml | but that doesn't make sense since this is more of a programmer error. | ||
| masak | isBEKaml: in this case, yes. in the general case, not necessarily. | 13:01 | |
| isBEKaml | masak: generally, shouldn't there be a default case then? | 13:03 | |
| masak: do given $x { when .. { } when ..{} otherwise/default {} } or something like that? | |||
| masak | the 'default' block is just sugar for 'when True'. | 13:04 | |
| it might as well be omitted at the end of the given block. | 13:05 | ||
| ok, poc now claims to have installed ufo, but I don't find it in ~/.perl6/bin | |||
| isBEKaml | so we keep it at the end of the block to denote the default case? is it guaranteed that the compiler wil jump out of the block as soon as it finds a match? | ||
| PERL6PATH? | 13:06 | ||
| masak | ah, the things I copied over from ufo don't seem to find bin/ufo | ||
| isBEKaml: I didn't understand what you said about the default case, sorry. | 13:07 | ||
| pmichaud | the 0 is the result of the failed test | ||
| (against the "a") | 13:08 | ||
| isBEKaml | masak: my $y = 't';my $x = do give $y { given 'a' {} given 'b' {} } 25; # $x would contain 25 | ||
|
13:08
orafu joined
|
|||
| masak | pmichaud: oh! | 13:08 | |
| so there is some logic to it anyway. | |||
| pmichaud | yes, I don't know what spec would say here. But there was a smartmatch performed, and Rakudo is using that as the return value since it's the last operation performed | 13:09 | |
| (in the block) | |||
|
13:10
karb joined
|
|||
| isBEKaml | rakudo: my $x = 't'; my $y = do given $x { when 'a' { 23 }; when 'b' { 0 }; } 55; say $y; | 13:11 | |
| p6eval | rakudo 083999: OUTPUT«===SORRY!===Confused at line 22, near "my $y = do"» | ||
| isBEKaml | rakudo: my $x = 't'; my $y = do given $x { when 'a' { 23 }; when 'b' { 0 }; }; say $y; | 13:12 | |
| p6eval | rakudo 083999: OUTPUT«0» | ||
| isBEKaml | rakudo: my $x = 't'; my $y = do given $x { when 'a' { 23 }; when 't' { 42 }; when 'b' { 24 } }; say $y; | ||
| p6eval | rakudo 083999: OUTPUT«42» | ||
| masak | pmichaud: the simplest thing would be to leave it like it is, returning False. | 13:13 | |
| isBEKaml | rakudo: my $x = 't'; my $y = do given $x { when 'a' { 23 }; when 'b' { 24 } } // 42; say $y; | ||
| p6eval | rakudo 083999: OUTPUT«0» | ||
| pmichaud | masak: I agree; and I liked 'simplest' here :) | ||
| *like | 13:14 | ||
|
13:14
Mowah joined
|
|||
| masak | aye. | 13:14 | |
| masak closes ticket | |||
| poc installs ufo! \\o/ | |||
| masak ships it | |||
| isBEKaml | \\o/ | 13:15 | |
| masak++ | |||
| masak | isBEKaml: pushed to the pls branch. please try it out. | 13:16 | |
| isBEKaml: you might have to 'rm -rf cache/ poc-projects.state' before you re-run poc. | |||
| isBEKaml | masak: I just rm-rf'd cache. ll remove .state too. | 13:17 | |
|
13:17
uniejo joined
|
|||
| isBEKaml | masak: let's see how that goes now. :) | 13:17 | |
| segfaulted. forgot about the latest perl6 thingy. : | 13:18 | ||
| :D | |||
| isBEKaml tries again. | 13:19 | ||
| masak | I'm glad that segfault is gone. | 13:20 | |
|
13:20
kid51 joined,
dudulz joined
|
|||
| isBEKaml is glad too | 13:21 | ||
| masak goes for lunch | |||
| isBEKaml | phenny: tell masak, tests failed. I think I got an older version of prove installed. the -e and --nocolor switches are not recognised. prove --version gives prove v2.64, using Test::Harness v2.64 and Perl v5.10.0 | 13:29 | |
| phenny | isBEKaml: I'll pass that on when masak is around. | ||
|
13:37
tadzik joined
|
|||
| tadzik | hello again | 13:37 | |
| isBEKaml | lolitstadzik! # loli'd again. :) | 13:38 | |
|
13:40
drbean joined
|
|||
| isBEKaml | \\o/ ufo installed! (with slightly modified switches to prove in tune with my local version) | 13:47 | |
| tadzik | hmm? | 13:51 | |
|
13:51
pmurias joined
|
|||
| isBEKaml | tadzik: ? | 13:51 | |
| tadzik | isBEKaml: installed with what, pls? | ||
| isBEKaml | tadzik: yes. | 13:52 | |
| tadzik | nice! | ||
| pmurias | ruoso: do you think prototyping mildew's optimizer in haskell (so that i don't have to port hoopl before i understand it fully or am sure it's the right choice) a sane idea? | ||
| isBEKaml | tadzik: masak++ did a few changes to poc since tests started to fail. 10-minute-patch! :D | ||
| tadzik | :) | 13:53 | |
| poke driven development? :P | |||
| isBEKaml | event driven development! :P | ||
| the-turn-of-events-triggered-masak-into-patching-poc! | 13:54 | ||
| :) | 13:55 | ||
| tadzik | :) | 13:56 | |
| pmichaud | phenny: tell TimToady could I get some clarification on your comments quoted in RT #71112? Are there any conditions in which @_ would be writable? It's also worth noting that "might-be-lvalue" doesn't appear to be much of a penalty in Rakudo (it's less cost than "enforces readonly-ness" in this case). | 14:13 | |
| phenny | pmichaud: I'll pass that on when TimToady is around. | ||
|
14:15
isBEKaml_ joined
14:20
tom_tsuruhara joined
|
|||
| jnthn | pmichaud: ping | 14:20 | |
| pmichaud | jnthn: pong | ||
| jnthn | pmichaud: If you have a PAST::Op of pasttype bind, and there's a PAST::Var within it, it would seem that we need to code-gen things differently than if it was just a PAST::Var in r-value context. | 14:21 | |
|
14:21
risou joined
|
|||
| jnthn | pmichaud: How do you approach this in PAST::Compiler? Does something pass down to that PAST::Var that tells it to code-gen differently, or...? | 14:21 | |
| pmichaud | jnthn: I think pasttype<bind> sets the lvalue flag on the PAST::Var | 14:22 | |
| (evil, because it makes the tree mutable, but that's the approach I took for the time being) | |||
| jnthn | Ah, OK | ||
| pmichaud | we could probably do a bit better using dynamic vars now | ||
| we didn't have them at the time that code was written | |||
| jnthn | Yeah, I was pondering a dynamic var solution. | ||
| Anyway, if it's just that something tells PAST::Var to code-gen differently, then I think I'm not thinking about this too wrongly. :-) | 14:23 | ||
| pmichaud | well, PAST::Var already knows to code-gen differently depending on lvalue and decl | ||
| otoh, I don't know how much I'd want to use the current PAST::Compiler as a model. Much of what is there is trying to work around Parrot's lack of decent lvalue handling | 14:24 | ||
| and the fact that Parrot confuses binding and assignment | |||
| jnthn | I haven't been looking at it really. :-) | ||
| Just "how do I get from PAST to runnable" :-) | 14:25 | ||
| It'd seem that it relies on PAST::Var as an l-value evaluating to some kinda node that it can push the value we want to bind into though. | |||
| s/into// | |||
| oh wait | 14:26 | ||
| s/that/onto which/ :-) | |||
| pmichaud | you have to do something that knows how to handle b-values, yes. | ||
| in PCT's case, the value gets passed down to PAST::Var as a bindvalue parameter or something like that | 14:27 | ||
| (note "b-value" !== "bindvalue") | |||
| in pct, bindvalue is the rhs | 14:28 | ||
| jnthn | Right, it's kinda the opposite direction of flow, in a sense. | ||
| pmichaud | (just clarifying to avoid potential confusion :-) | ||
| jnthn | Yes, thanks. :-) | ||
| Let's see what I can make work. :-) | 14:29 | ||
| karb | In signatures is it required to mark a parameter as "is copy"? Can't we use copy-on-write like mechanism? | 14:39 | |
| pmichaud | karb: I think the intent is to make it very clear what is happening. | 14:40 | |
| dalek | kudo: 9e1bcd4 | pmichaud++ | src/binder/bind.c: Some refactors to array creation in the binder prior to @_ updates. |
||
|
14:41
masak joined
|
|||
| karb | pmichaud: Ok. Can explicitness not be optional? | 14:41 | |
| jnthn | karb: Are you finding that you use "is copy" a lot? | 14:42 | |
| Most Perl 6 code I've seen makes little use of it, that's all. | |||
| yaymasakisback | |||
| masak | 'is rw' and 'is copy' are, in some very vague sense, code smells. | 14:43 | |
| phenny | masak: 13:29Z <isBEKaml> tell masak tests failed. I think I got an older version of prove installed. the -e and --nocolor switches are not recognised. prove --version gives prove v2.64, using Test::Harness v2.64 and Perl v5.10.0 | ||
| karb | i seem to as in other languages you hardly mark it that way as those 'other' languages tend to copy values by default | ||
| masak | isBEKaml: yeah, I recognize that failure, and it has to do with versions of whatever module prove is in. | ||
| isBEKaml: Test::Harness, yes. | |||
| isBEKaml: I think we should be a bit strict there and just require the newer one. | 14:44 | ||
| isBEKaml_ | masak: yes, I fixed it locally with some different arguments passed in. :) | ||
| masak | I'll happily accept a patch that checks what Test::Harness is installed, and fails the test step if it's a not-new-enough version. | ||
| isBEKaml_ | masak: just prove --perl 'perl6' -r t/ worked. | ||
| I believe --perl exists in all versions atleast since 2.64 that I have here. | 14:46 | ||
| and --nocolor isn't needed, is it? | 14:47 | ||
| masak | no, not really. | 14:48 | |
| masak removes it | |||
| tadzik | masak: working on pls? | 14:49 | |
| masak | tadzik: I was, earlier today, thanks to isBEKaml++. | ||
| tadzik: it was a pleasant little yak shaving session. | |||
| I now feel eager to get back to pls after the GSoC grant finishes. | |||
| jnthn | \\o/ | ||
| masak++ | |||
| jnthn takes a break | 14:50 | ||
| masak | turning the Makefile-generation into pure Perl 6 instructions instead. | ||
| someone else could probably beat me to that, if they wanted. | |||
| tadzik | nice! | 14:51 | |
| masak | isBEKaml_: --nocolor now removed in both ufo and pls. | 14:54 | |
| isBEKaml_ | masak: great! All that is needed with prove is to warn if the new version isn't found ,degrade gracefully to whatever older version available and complain loudly if that fails. :) # I have yet to figure out how to do that. tadzik? | 14:55 | |
| tadzik | isBEKaml_: Hm? | 14:56 | |
|
14:56
karb left
|
|||
| isBEKaml_ | tadzik: ^^ | 14:56 | |
| masak | isBEKaml_: yes, that would be the long-term solution. | ||
| isBEKaml_ | tadzik: how do I do that? :) | ||
| tadzik | yes, I see. But I don't know what do you mean, and what do you actually want to do | ||
| (and why) | |||
| masak | isBEKaml_: I guess perl can be made to return the version number of the installed Test::Harness. | ||
| tadzik: we want to switch behaviours (the flags we send in) based on installed Test::Harness version. | 14:57 | ||
| isBEKaml_ | masak: -r exists in both. -e is available in newer versions while older ones seem to have --perl to select which perl to work with. | ||
| masak | huh. | ||
| tadzik | hm | ||
| arnsholt | Yeah, that's an annoying detail | 14:58 | |
| isBEKaml_ | masak: -e or --exec whatever is suitable in newer versions. | ||
| arnsholt | I discovered that myself a while back | ||
|
14:59
jimk joined
|
|||
| masak | arnsholt: it would be nice to solve it once and for all in pls. | 14:59 | |
| arnsholt: so that newer users get the perks, but older users don't get errors. | |||
| arnsholt | Indeed. I can't remember which version of Test::Harness changed from --perl to --exec though, I'm afraid | 15:00 | |
| masak | that's easy enough to find out. | 15:01 | |
|
15:01
stereonaut joined
|
|||
| arnsholt | True. Me knowing would be even easier though =) | 15:01 | |
| isBEKaml_ | :) | ||
|
15:01
justatheory joined
|
|||
| isBEKaml_ | cpansearch.perl.org/src/ANDYA/Test-...21/Changes | 15:06 | |
| changelogs don't show anything. If at all, I see only older versions with --exec. :/ | |||
| masak | I remember finding out once by going through the older versions and looking at the Pod HTML. | 15:07 | |
| isBEKaml_ | cpansearch.perl.org/src/ANDYA/Test-...anges-2.64 | 15:09 | |
| " The current version of test harness is a complete rewrite of this code." :O | 15:10 | ||
| Should we inform the author he broke --perl ? :D | 15:11 | ||
| masak | possibly. | 15:12 | |
| isBEKaml_ | 2.99_02 2007-09-07 --> Added support for non-forking Perls. # this is the closest I see. | 15:13 | |
|
15:13
Axius joined
|
|||
| masak | that looks completely unrelated to me. | 15:13 | |
| isBEKaml_ | or I don't get it. older version of perl maybe. | ||
| TimToady | std: 42 | 15:14 | |
| phenny | TimToady: 14:13Z <pmichaud> tell TimToady could I get some clarification on your comments quoted in RT #71112? Are there any conditions in which @_ would be writable? It's also worth noting that "might-be-lvalue" doesn't appear to be much of a penalty in Rakudo (it's less cost than "enforces readonly-ness" in this case). | ||
| p6eval | std 31912: OUTPUT«ok 00:01 111m» | ||
| TimToady | std isn't updating | ||
|
15:17
fod joined
|
|||
| masak | TimToady: at some point, I'd like to talk about Nil and definedness. some other people also seem to want that. :) | 15:18 | |
| TimToady: irclog.perlgeek.de/perl6/2010-08-13#i_2701269 | 15:21 | ||
|
15:25
Mowah joined
|
|||
| masak | yapsi: my $a = 42; say $a | 15:40 | |
| p6eval | yapsi: OUTPUT«42» | ||
| masak | yapsi: my $a := 42; say $a | ||
| p6eval | yapsi: OUTPUT«Couldn't handle instruction `bind '$a', <constant>`» | ||
| masak | huh. | ||
| moritz_, diakopter: would it be possible to add a commit SHA1 hash for the yapsi target, like rakudo and std have? | 15:42 | ||
| moritz_ | would be possible, yes | ||
| just have your default 'make' target write the SHA1 into a file | |||
|
15:42
whiteknight joined
|
|||
| masak | is that what rakudo and std do? | 15:43 | |
| moritz_ | more or less | ||
| yapsi: my $a := 42; say $a | |||
| p6eval | yapsi: OUTPUT«Couldn't handle instruction `bind '$a', <constant>`» | ||
| moritz_ | seems it didn't rebuild | 15:44 | |
| yapsi: my $a := 42; say $a | |||
| p6eval | yapsi: OUTPUT«Couldn't handle instruction `bind '$a', <constant>`» | ||
| masak | as far as I know, that might be the latest behaviour. | ||
| moritz_ | that's 513948d3b034fa9aea07828a7cbc855ba0e174a2 now | ||
| masak | I'm having problems getting yapsi to run (fast) locally. | 15:45 | |
| oh, that's ancient. | |||
|
15:46
stereonaut joined
|
|||
| moritz_ | Makefile was locally modified, which prevented pulls | 15:46 | |
| yapsi: my $a := 42; say $a | |||
| p6eval | yapsi: OUTPUT«Unable to open filehandle from path 'yapsi'current instr.: 'perl6;PCT;HLLCompiler;evalfiles' pc 1303 (src/PCT/HLLCompiler.pir:707)called from Sub 'perl6;PCT;HLLCompiler;command_line' pc 1489 (src/PCT/HLLCompiler.pir:794)called from Sub 'perl6;Perl6;Compiler;main' pc -1 ((unknown… | ||
| masak | it's bin/yapsi nowadays. | 15:47 | |
| whiteknight | how do I interact with a normal Parrot PMC type from Rakudo? Is there something like NQP's Q:PIR that I can use? | 15:48 | |
| masak | Rakudo has Q:PIR too. | ||
| whiteknight | nice' | ||
| masak | there's also pir::some_op | ||
| whiteknight | are there any good examples of it's use in Rakudo that I can look at? | ||
| masak | src/core | 15:49 | |
| moritz_ | ack -iw pir src/ | ||
|
15:49
p6eval joined
15:51
karb joined
15:56
Axius joined
16:04
Axius_ joined
|
|||
| masak | seems like proto regexes didn't exist in the first snapshot of STD. github.com/moritz/Mu/commit/1a2d70b...77ff7206ac | 16:06 | |
|
16:07
Mowah joined
|
|||
| moritz_ | masak: they just weren't called proto | 16:09 | |
| github.com/moritz/Mu/commit/1a2d70b...6ac#L0R184 | |||
| masak | moritz_: indeed. | 16:10 | |
|
16:11
Trashlord joined
|
|||
| masak | hm, blog post idea. "Places where Perl 6 diverges from Perl 5 and why we did it" | 16:14 | |
| sigil invariance. | |||
|
16:15
Axius joined
|
|||
| masak | qx instead of backticks. | 16:15 | |
| rokoteko | what's wrong with qx in perl 5? | 16:16 | |
| moritz_ | p5 also has px | ||
| rm, qx | |||
| rx vs. qr | |||
| adverbs up front | |||
| masak | right. | ||
| rokoteko | moritz_: the words you speak are relatively short. | ||
| masak | rokoteko: oh, I didn't know that. | ||
| moritz_ | rokoteko: good huffman coding :-) | 16:17 | |
| rokoteko | masak: nods. if you need some ideas, I tried to output some of my thoughts (as having perl5 background) to moritz last night. maybe you could share them. :) | ||
| masak | rokoteko: definitely. | 16:18 | |
| rokoteko: so, they're in the channel backlog? | |||
| moritz_ | no, private message | 16:19 | |
| rokoteko mentioned p5 references vs. p6 captures, for instance | |||
| I'd gladly delegate that to you, masak :-) | |||
| rokoteko | moritz_: captures/parcels. and explaining the relation to perl 5 references and also whats the difference with parles and captures. :) | 16:20 | |
| masak | moritz_: :) | ||
| rokoteko | s/parles/parcels/ | ||
| masak .oO( parsley, parley... ) | |||
| rokoteko | masak: fascinating. that just reminded me that forgot to put parsley on my root vegetable stew that about ready to come out of oven. :) | 16:21 | |
| masak | rokoteko: you're welcome. | 16:22 | |
| rokoteko | :) | ||
| masak zips off in the air to help the next citizen | |||
| rokoteko | the Herb-Man did it again! | 16:23 | |
| masak plays theme music out of nowhere | |||
|
16:24
Axius_ joined
|
|||
| moritz_ hums "Scarborough Fair" .... "she once wasn a true love of mine" | 16:24 | ||
| jnthn | Only the best singers bring out the \\n as they sing it. | 16:26 | |
| pugssvn | r31992 | pmurias++ | [mildew] add a -Cast-haskell backend to Mildew to spit out the AST as a | ||
| r31992 | haskell literal (to be read in by read) | |||
| r31993 | pmurias++ | [mildew-hoopl] start prototyping the mildew optimiser with haskell and hoopl | |||
| moritz_ can talk punctuation -- sometimes :-) | 16:27 | ||
| pmurias | masak: i have started the mildew-hoopl experiment ;) | ||
| masak | pmurias: yeah, I suspected that from your question to ruoso. :) | ||
| pmurias: how's it going? | |||
| pmurias | got the feed the AST to haskell part done | 16:29 | |
| now i have to start writing the optimalisations | |||
| masak | cool. | 16:30 | |
|
16:35
risou joined
|
|||
| pugssvn | r31994 | moritz++ | [t/spec] unfudge MAIN tests, patrickas++ | 16:37 | |
| r31995 | moritz++ | [t/spec] simplify, extend and fudge any-bool.t | |||
|
16:39
awwaiid joined,
stereonaut joined
|
|||
| pugssvn | r31996 | moritz++ | [ext/CGI] make CGI.pm compile with rakudo; also use auto-generated accessors | 16:40 | |
| pmurias | masak: i'll have to transform the AST into a form that hoopl can work with before writing them first | 16:41 | |
| masak | makes sense. | ||
| pmurias | what can cause a jump? an exception, a control exception , a goto? | 16:46 | |
| masak | the lower end of a loop or the upper end of an if statement :P | 16:47 | |
| pmurias | masak: i'm trying to figure all the magic jumps | 16:48 | |
|
16:49
Mowah joined,
awwaiid joined
|
|||
| pmurias | does goto and loop control flow a control exception? | 16:50 | |
| masak | SORRY cannot parse, near 'loop control flow a'. | 16:53 | |
| pmurias | does goto and loop control flow (last,next) throw a control exception? | 16:56 | |
| masak: sorry for not using proper english | |||
| ;) | 16:57 | ||
| masak | pmurias: no worries. it's just hard with a sentence that doesn't the main verb. | ||
| could be 'throw', could be 'ignore', could be 'hug'... :) | |||
| pmurias: anyway, your question. I'm pretty sure last and next throw exceptions, since they're dynamical in nature. | 16:58 | ||
| pmurias: but goto isn't, really. it needs to be able to jump inwards into blocks as well as to roll back the call stack. | 16:59 | ||
| isBEKaml | masak: ./yapsi -e 'my $a=3; while --$a { say my $b; $b=42; }; ' # :) | 17:00 | |
| Unknown instruction: $1 = fetch [0, 0] | |||
| masak | isBEKaml: yeah, something seems to be amiss. I'm guessing something changed in Rakudo recently. | 17:01 | |
| isBEKaml | masak: I don't know. that was SIC. | 17:02 | |
| :/ | |||
| masak | right, but that definitely used to work. | ||
| the fact that it says 'unknown instruction' means that the corresponding regex no longer matches. | 17:03 | ||
| and I didn't change anything. | |||
| pmurias | masak: goto also scans for the label both dynamically and lexically | ||
| masak | true, true. but the jump itself cannot be executed with an exception alone. | 17:04 | |
| with next and last, it can. | |||
| isBEKaml | masak: yes, looks like a failed regex match. I see the regex here. | 17:06 | |
| masak | question is why. | 17:07 | |
| isBEKaml | Unknown instruction: $1 = fetch [0, 0] | 17:10 | |
| oops | |||
| ['[(0)||'-'(\\d+)]', '(\\d+)']' $ # the first 0 is always 0, just curious. | 17:11 | ||
| ? | |||
| pmurias | masak: any thing else that jumps strangely? | ||
| masak | pmurias: junctions? not sure if those count. | ||
| pmurias: they do run the same code many times, just like loops, though. | 17:12 | ||
| isBEKaml: ok, I know what's wrong. | |||
| isBEKaml: the literal string is line-broken. | 17:13 | ||
| isBEKaml | masak: that's a problem? | ||
| masak | well, it makes it try to match a newline and a lot more spaces. | ||
| isBEKaml | masak: I thought p6 regexes don't count whitespaces? | 17:14 | |
| masak | they don't... outside of literals. | ||
| much like non-regex p6. | |||
| isBEKaml | I see. | 17:15 | |
| masak | I pushed a fix. testing it now. | 17:16 | |
| dalek | psi: 542b528 | masak++ | lib/Yapsi.pm: [Yapsi] unbroke cleaning-up change |
||
|
17:17
risou_ joined
|
|||
| pugssvn | r31997 | audreyt++ | * C<'> is an apostrophe, not a hyphen. :-) | 17:18 | |
| r31998 | audreyt++ | * A couple more Differences.pod nits. | 17:21 | ||
| whiteknight | in Rakudo, can I call a method on a normal PMC, or will ever method call attempt to use the rakudo signature binder? | 17:23 | |
| ingy | greetings | 17:24 | |
| phenny | ingy: 12:33Z <isBEKaml> ask ingy why we need UFO defined in the generated makefile that it generates. | ||
| moritz_ | whiteknight: I think it should work | ||
| masak | isBEKaml: speaking of Yapsi, do you also get a failure on line 363 of lib/Yapsi.pm when running 'make test'? it's after test 17 of t/runtime.t | ||
| jnthn | whiteknight: The signautre binder is callee side. | ||
| whiteknight | ah, okay. | ||
| perfect | |||
| isBEKaml | masak: lemme check. | 17:25 | |
| moritz_ | whiteknight: the invocant decides what dispa... jnthn was faster | ||
| ingy | isBEKaml: you still need to know? | ||
| isBEKaml | ingy: yes. | 17:26 | |
| ingy | make Makefile deps on it | ||
| so you can make Makefile if the makefile is out of date | |||
| because you installed a new ufo | |||
| isBEKaml | ingy: I only guessed at other dependencies for the modules to be installed so that ufo can detect and generate makefiles. | 17:27 | |
| ETOOSLOWTYPING | |||
| masak | ingy: why not just do 'ufo' in that case? | ||
| ingy: that's what ufo does, after all. | |||
| isBEKaml | masak: dannit, prove is my undoing! :/ | 17:28 | |
| masak | isBEKaml: edit Makefile manually? | ||
| isBEKaml | masak: yes, that's what I'm doing. | ||
| ingy | masak: why run ufo if the Makefile is already up to date? | ||
| it's just a good make practice | 17:29 | ||
| isBEKaml | ingy: that's what ufo should detect. That Makefile is up to date and do nothing. | ||
| masak was just going to say that | |||
| ingy | isBEKaml: but ufo takes years to run | ||
| :P | |||
| whiteknight | how do I do slurpy positional args, *@args? | 17:30 | |
| isBEKaml | ingy: don't say that again. I'll really have to cry. ;) | ||
| ingy | anyway, it's not critical. then again, neither is perl 6 | ||
| moritz_ | whiteknight: yes | 17:31 | |
| whiteknight | yay! I'm perl6ing! | ||
| masak | whiteknight++ | ||
| isBEKaml | ingy: so we can remove it? | ||
| masak | ingy: ok. I might remove the feature. I'm also a bit wary about ufo leaving a signature like that in a Makefile. | ||
| isBEKaml | ingy: pending ufo features, ofcourse. :> | 17:32 | |
| ingy | isBEKaml: if you have commit :P | ||
| I'll keep it in my fork ;) | |||
| ufi | |||
| masak | by all means. | 17:33 | |
| ingy: by the way, thanks for your contributions to ufo a while ago. it really made things better. | |||
| ingy++ | |||
| ingy | sure! | ||
| isBEKaml | ingy: thanks. :) | ||
| ingy | it seems a little backwards having ufo worry about things that make should | 17:34 | |
|
17:34
karb left
|
|||
| ingy | I'm not saying that the Makefile target was doing everything it needed to | 17:35 | |
| isBEKaml | ingy: I'd just say, "Make is stupid. Do something!" | ||
| :P | |||
| ingy | make is not. make is great technology | ||
| I really believe in it | |||
| it has issues, but it works well almost everywhere | 17:36 | ||
| isBEKaml | ingy: no offence. I was just joking. :) | 17:37 | |
| ingy | ok :) | ||
| fwiw, I wasn't ;) | 17:38 | ||
| masak | isBEKaml: ok, found the cause of the error. | ||
| ingy just woke up | |||
| isBEKaml | masak: I'm still running the tests on my slow machine. :) | ||
| stillll.... | |||
| t/compiler....FAILED tests 27, 33 | |||
| masak | right. I know about those. | ||
| those are honest failures. | 17:39 | ||
| isBEKaml: something that was expected to be a Str was really an Any in @sic. | |||
|
17:39
ashleydev joined
|
|||
| ingy | masak: I had considered having all the targets check if the Makefile was up to date, like Makefile.PL does | 17:39 | |
| masak: but I stopped short, because it might be a rathole | 17:40 | ||
| masak | ok. | ||
| isBEKaml | masak: yes, I get the same error. | ||
| masak | isBEKaml: hopefully this fixes it. will push after running the tests myself. | ||
| ingy | has jnthn evaporated? | ||
| and pmichaud | |||
| TimToady reconstituted recently | 17:41 | ||
|
17:41
ashleydev joined
|
|||
| isBEKaml | reconstituted? :) | 17:42 | |
| isBEKaml goes dreaming about teleporting tech... | |||
| masak | isBEKaml: sleep tight! | 17:43 | |
| isBEKaml | masak: oh, I don't know. I might end up somewhere. :P | ||
| pugssvn | r31999 | moritz++ | [t/spec] test for RT #77134, !~~ did not set $_ to the LHS | ||
| isBEKaml | or horror of horrors, spliced! :O | ||
|
17:45
ashleydev joined
|
|||
| isBEKaml | how do I turn on backtraces in Rakudo? | 17:46 | |
| dalek | psi: c2f5490 | masak++ | lib/Yapsi.pm: [Yapsi] unbroke an error in smartmatching Str. Fixed the symptom. |
||
|
17:48
plobsing joined
|
|||
| isBEKaml | tests++ masak++ :) | 17:50 | |
| again, how do I turn on backtraces in Rakudo? | |||
|
17:51
tylercurtis joined
|
|||
| masak | isBEKaml: you already get backtraces in Rakudo. I don't understand the question. | 17:51 | |
| isBEKaml | masak: sorry, I meant that I want to see those tracebacks from parrot too. :D | 17:53 | |
| masak | not sure how to do that. | 17:54 | |
| maybe find the Rakudo commit that turned them off? :) | |||
| isBEKaml | settings-library? | ||
| moritz_ | src/Perl6/Compiler.pir | ||
| rename method backtrace to something else | 17:55 | ||
| isBEKaml | moritz_++ #thanks | 17:56 | |
| I'm used to running builds when I go to sleep. Just wanted to do something 2nite. :) | 17:59 | ||
| 'nite all! :) | |||
| masak | running & | 18:03 | |
|
18:04
Axius joined
|
|||
| cognominal | rakudo: say Perl6::Compiler.^methods | 18:12 | |
| p6eval | rakudo 9e1bcd: OUTPUT«Method 'methods' not found for invocant of class '' in main program body at line 22:/tmp/zhk_Z1ndb9» | ||
| cognominal | rakudo: say Perl6::Compiler.WHAT | 18:14 | |
| p6eval | rakudo 9e1bcd: OUTPUT«Perl6::Compiler()» | ||
|
18:15
Mowah joined
|
|||
| sorear | good * #perl6 | 18:15 | |
| FWIW I'm thinking of making niecza default to is ro-copy or so | 18:17 | ||
|
18:17
Axius_ joined
|
|||
| whiteknight | is there a method I can override, like ToString or somethign that controls stringification? | 18:18 | |
| jnthn | Str | 18:19 | |
| whiteknight | and while I have your attention, how do I include files together? using? | 18:21 | |
|
18:22
Axius joined
18:25
awwaiid joined
|
|||
| sorear | 'use' is used to pull in code from other files, yes | 18:25 | |
| jnthn | whiteknight: "use" | 18:26 | |
| sorear | but it's not strictly inclusion | ||
|
18:27
s1n joined
18:29
Eevee joined
|
|||
| moritz_ | rakudo: class A { method Str { 'foo' } }; say A.new() | 18:35 | |
| p6eval | rakudo 9e1bcd: OUTPUT«foo» | ||
| moritz_ | whiteknight: see above | ||
|
18:35
itz joined
18:48
fod joined,
rindolf joined
|
|||
| rindolf | Hi all. | 18:48 | |
| sorear | Hello rindolf. | 18:50 | |
| rindolf | sorear: what's up? | ||
| moritz_ nevers knows how to answer that question | 18:53 | ||
| sorear neither | 18:54 | ||
| cognominal | what's up, doc? | ||
| rindolf | What's up, RTF. | 19:00 | |
|
19:06
cono joined
|
|||
| whiteknight | how do you make a constructor in Perl6? I can't find any examples | 19:17 | |
| moritz_ | you get one for free | 19:18 | |
| whiteknight | of course, I'm probably looking in the right place | ||
| colomon | whiteknight: rakudo/src/Rat.pm has an example | ||
| whiteknight | moritz_: I want to overload it, make my own | ||
| moritz_ | whiteknight: perlgeek.de/blog-en/perl-6/object-c...ation.html | ||
|
19:23
alester joined
19:38
Axius joined
19:42
molaf joined
19:44
jferrero joined
19:56
tylercurtis joined
19:58
dha joined
19:59
kid51 joined
|
|||
| tylercurtis | .u ellipsis | 20:00 | |
| phenny | U+0EAF LAO ELLIPSIS (ຯ) | ||
| tylercurtis | .u horizontal elipsis | ||
| phenny | tylercurtis: Sorry, no results for 'horizontal elipsis'. | ||
| sorear | .u DOTS | 20:01 | |
| phenny | U+205E VERTICAL FOUR DOTS (⁞) | ||
| sorear | .u THREE | ||
| phenny | U+0033 DIGIT THREE (3) | ||
| moritz_ | whiteknight: did that link help you? | 20:02 | |
| sorear | .u 2026 | ||
| phenny | U+2026 HORIZONTAL ELLIPSIS (…) | ||
|
20:07
alester joined
20:12
Guest23195 left
|
|||
| TimToady | pmichaud: re @_, I'm fine with whatever is the least overhead, which is likely to be "is parcel" semantics, i.e. don't care whether it's readonly or rw | 20:18 | |
| the compiler is allowed to assume readonly semantics where violations can easily be detected statically, and where it might improve optimization of subcalls | 20:19 | ||
| but I think we can label violations of readonliness as "erroneous" and not worry too much | 20:20 | ||
| sorear | In LOOP: while(1) { ... }, what is the type of LOOP? | 20:21 | |
| S04 says it supports methods like .redo | |||
| TimToady | er...Label? | ||
| sorear hadn't noticed that type before | 20:22 | ||
| TimToady | it's more like a constant, really | ||
| sorear | ack Label in docs/spec picks up nothing | ||
| TimToady | anyway, it defines a word that parses like a type or enum | ||
|
20:22
molaf joined
|
|||
| sorear | I think it also has some sub-nature, in that it has to bind to a single dynamic frame | 20:23 | |
| TimToady | phenny: tell masak I can see where splitting Nil/() into undefined/defined variants could have some benefit, especialy since @foo = Nil might be the only way to mark @foo as undefined, and @foo = () leaves it defined | 20:24 | |
| phenny | TimToady: I'll pass that on when masak is around. | ||
| sorear | something like sub foo($l, $k) { X: while(1) { $l.last if $l; foo(X, $k-1); } } | 20:25 | |
| ; foo(Any, 1) | |||
| if $l is an uncloned object, then the inner call to foo will return and the outer call will loop forever | 20:26 | ||
| but I think the inner call should force the outer call to return | |||
| TimToady | yes, I can see that, sort of forcing the lexotic choice at that point | ||
| sorear | by my interpretation of lexoticism | ||
| Loop labels look a lot like &?BLOCK | 20:29 | ||
| TimToady | phenny: tell masak but I'd like to get pmichaud++'s and jnthn++'s take on the idea of Nil as a kind of bottom type sepearate from (), or anyone else's opinion as well | ||
| phenny | TimToady: I'll pass that on when masak is around. | ||
| sorear | which also has to be not quite a constant, in order to close over lexicals right | 20:30 | |
| TimToady | yes, sort of the notion that every statement to the end of the block is an implicit subblock/continuation | ||
| kinda like the REPL is currently implemented | 20:31 | ||
| lue | ohello o/ | 20:36 | |
| colomon | \\o | 20:37 | |
|
20:38
Mowah joined
|
|||
| sorear | TimToady: Actually, the REPL implementation was completely redone by pmichaud++ | 20:54 | |
| TimToady: Nowadays there's only one subblock at a time and the pad is hash-merged into the parent on each iteration | 20:55 | ||
|
20:55
masak joined
|
|||
| masak | \\o/ | 20:55 | |
| phenny | masak: 20:24Z <TimToady> tell masak I can see where splitting Nil/() into undefined/defined variants could have some benefit, especialy since @foo = Nil might be the only way to mark @foo as undefined, and @foo = () leaves it defined | ||
| masak: 20:29Z <TimToady> tell masak but I'd like to get pmichaud++'s and jnthn++'s take on the idea of Nil as a kind of bottom type sepearate from (), or anyone else's opinion as well | |||
| masak | ok, sounds good. I think. | 20:56 | |
| I don't like the current state, but I'd have to play with the proposed alternatives to know whether I like them better or worse. :) | |||
| lue | hai masak o/ | 20:57 | |
| masak | well hellue! | ||
| someone giving a non-exaggerated negative opinion about Camelia: twitter.com/nkhlss/status/21174362743 | 20:58 | ||
| (usually the negative people use hyperbole of different kinds) | |||
| lue | .oO(hypobole?) |
21:00 | |
| cognominal | Finalement Nil est deux fois rien... (French pun) | ||
| masak | two times nothing? | 21:01 | |
| or 'twice nothing', rather... | |||
| cognominal | yup | 21:02 | |
| masak | and 'finalement' means more 'eventually' than 'finally'? | ||
| cognominal | probably both. | 21:03 | |
| lue | .oO(The only ones I couldn't guess were 'fois' and 'rien'. I guessed 'Final nothing is two fois rien') |
21:06 | |
| masak | in a change that went into the spec in 2009-11-24 replaced a lot of C<undef>s with C<Nil>s. | 21:07 | |
| s/in // | |||
| and another change from 2010-02-28 clarifies that .defined on Nil as an unevaporated object still returns True. | 21:08 | ||
| but that's probably more of a clarification of somehting that was already the case, rather than an actual change. | 21:09 | ||
| lue: how are you doing? any exciting hacking projects lately? | 21:12 | ||
| lue | Fine. I've been working on a website, not much else. | 21:15 | |
| [ I had a case of computer apathy, so I didn't feel like using my computer for a couple of days :) ] | |||
| masak | I should probably have those more often. | ||
| std: class A {}; sub A {} | 21:16 | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mIllegal redeclaration of routine 'A' (see line 1) at /tmp/TvG3ha_pMu line 1:------> [32mclass A {}; sub A[33m⏏[31m {}[0mCheck failedFAILED 00:01 112m» | ||
| masak | rakudo: class A {}; sub A { say "OH HAI" }; say A.new; A() | ||
| p6eval | rakudo 9e1bcd: OUTPUT«A()<0x6ec9d70>OH HAI» | ||
| masak submits rakudobug | |||
| std: sub A {}; class A {} | |||
| p6eval | std 31912: OUTPUT«ok 00:02 112m» | ||
| jnthn | erm. | 21:17 | |
| masak | rakudo: sub A { say "OH HAI" }; class A {}; say A.new; A() | ||
| p6eval | rakudo 9e1bcd: OUTPUT«A()<0x6ecdba0>OH HAI» | ||
| masak | at least Rakudo is consistent. :) | ||
| jnthn | I think Rakudo has it right there, fwiw. | ||
| Subs get stashed with an & sigil | |||
| So there's no an ambiguity. | 21:18 | ||
| *not | |||
| masak | in some sense classes and subs share the same namespace, though. | ||
| above, they're both referrable to as 'A'. | |||
| lue | rakudo: say (16**15-1 == 0xFFFFFFFFFFFFFFFF) | ||
|
21:18
awwaiid joined
|
|||
| p6eval | rakudo 9e1bcd: OUTPUT«0» | 21:18 | |
| masak | rakudo: say sprintf "0x%x", 16 ** 15 - 1 | 21:19 | |
| p6eval | rakudo 9e1bcd: OUTPUT«0x1000000000000000» | ||
| lue | rakudo: say 16**15; say 0xFFFF_FFFF_FFFF_FFFF; | ||
| p6eval | rakudo 9e1bcd: OUTPUT«1.15292150460685e+18-1» | ||
| lue | .oO(curse you undersized integers) |
21:20 | |
| waitaminute. 16**15 > 0xFFFF_FFFF_FFFF_FFFF . So why does 16**15 not say -2 ? | 21:23 | ||
| colomon | it never is -2 | ||
| 16**15 becomes a Num | 21:24 | ||
| Juerd | lue: Does it matter which wrong number you get? | ||
| masak | :) | ||
| lue | I like always wrong over sometimes wrong :) | 21:25 | |
| colomon | 16**15 calls upgrade_to_num_if_needed(pir::pow__NNN(16, 15)) | ||
| upgrade_to_num_if_needed tests against +-2**31 to see if the result should be an Int or a Num | 21:26 | ||
|
21:27
jasonmay joined
|
|||
| lue | rakudo: say (16**15 - 1).fmt('%x') | 21:28 | |
| p6eval | rakudo 9e1bcd: OUTPUT«1000000000000000» | ||
| colomon | rakudo: say (16**15 ).fmt('%x') | ||
| p6eval | rakudo 9e1bcd: OUTPUT«1000000000000000» | ||
| colomon | more proof you're looking at a Num, if you needed it. :) | 21:29 | |
| masak | not many languages actually get this right. | 21:30 | |
| lue | Not that I need a 16-digit hex number anyway :) .oO(although it would be a great format for telephone numbers) | 21:31 | |
| colomon | there's no reasonable way to get it right if you've got a floating point number, is there? | ||
| Juerd | fmt is an ugly name. | ||
| masak | Juerd: I kinda like it. it has the right length. | 21:33 | |
| lue | using fmt for decimal -> hex is an ugly way of doing so :) | ||
| masak | lue: if you don't like that way of doing it, write a wrapper sub with a different name. | 21:34 | |
| lue: or propose a way that we all like so much better that we agree to put it in the spec. | |||
| Juerd | masak: It's a rather pointless abbreviation; format may be twice as long but is still short. | ||
| masak: Abbreviations make typing easier, at the expense of reading and remembering. | 21:35 | ||
| lue | I was just thinking: I ought to continue complaining when I find a solution :) | ||
| masak | Juerd: for some reason, 'fmt' reminds me a bit of 'sprintf'. I guess it's the consonant density that does it. kind of an almost-mnemonic. | 21:36 | |
| Juerd | But you're insane :) | ||
| masak | admittedly. | ||
| Juerd | sprintf is a horrible name too. | ||
| masak | oh, very much so. | ||
| Juerd | strftime is one of the worst. | ||
| masak | did we get rid of that one? | 21:37 | |
| we didn't, did we? | |||
| Juerd | Did we even get it? | ||
| at all? | |||
| masak | I think so... | ||
| it was in there with Temporal somewhere. | |||
| Juerd | Maybe we should just steal Python's % | ||
| tylercurtis | Please no! | 21:38 | |
| masak | sounds like a great thing for a module to do. | ||
| Juerd | masak: That wouldn't solve the fmt-sucks problem. | ||
| Sure, I could write a wrapper and use a less sucky identifier in my own code. But I'd still encounter fmt in other code and other people would have to learn my identifiers on top of the original ones. | 21:39 | ||
| masak | Juerd: got a commit bit? go and change .fmt to .format in the spec. I don't mind changing all of my application code that uses .fmt. | ||
| Juerd | Is changing something without discussing it first a good idea? | ||
| I don't want to start an edit war | |||
| masak | Juerd: we are discussing it. | 21:40 | |
| if you want, you can throw off an email to p6l as well. | |||
| but I wouldn't recommend it. | |||
| Juerd forgot how to use the commit bit. | |||
| masak | now that's just a shame. | ||
| Juerd | It's been years | ||
| masak | time to dust off that old password. | 21:43 | |
| .fmt is mentioned in S02 and S32/Str. | 21:44 | ||
| Juerd | I don't even know my password | ||
| Wow. | |||
| masak | there are parameters in S32/IO that are named $fmt but should probably be named $format, too. | ||
| Juerd | What changed your mind? | 21:45 | |
| masak | I'm not necessarily agreeing with you. just enabling you to take action. | ||
| I'm not disagreeing with you enough to dissuade you. | |||
| for me, it's a great little method, three letter or six. | 21:46 | ||
| Juerd | I'm going to bed now. Maybe I'll remember the password when I'm more awake | ||
| masak hopes so | |||
| Juerd | I could just hack the repository and destroy all consistency | 21:47 | |
| masak | in the meantime, people may vote: .fmt or .format? let the voice of the roaring masses be heard. | 21:48 | |
| Juerd | Votes for .f or whatever you prefer are welcome too :) | ||
| f would be strangely appropriate, considering printf | |||
| It does the f, not the print. | |||
| jnthn | .frmt ;-) | 21:49 | |
| masak | Juerd: oh, and I'll throw in another bonus for you: if your change goes, through, I'll change my Advent Calendar post to reflect it: perl6advent.wordpress.com/2009/12/0...ormatting/ | ||
| sorear | .fmt, it has a very 1970s libc feel to it | ||
| "I would spell creat with an e." | |||
| masak | I'll count Juerd's opinion as one vote, too. | 21:50 | |
| Juerd | masak: Are you counting .f or .format? :) | ||
| masak | yes. | 21:51 | |
| Juerd | Wise | ||
| pmurias | masak: re camelia my roomate (who doesn't know perl) thinks the Perl 5 camel logo is horrid but he thinks Camelia is ok | 21:56 | |
| masak | :) | 21:57 | |
| pmurias: probably a person who goes by smells. :P | |||
| sorear <3 camelia | |||
| TimToady: Did you see my question about name collisions and action methods? | 21:58 | ||
| pmurias | if we were going from the Camelia to the camel there would likely be a lot of opposition too | ||
| dalek | ecza: 6c3d690 | sorear++ | CodeGen.pm: Always generate labels inorder |
22:05 | |
| ecza: 0b4529f | sorear++ | (2 files): Code generation for body tree in postorder |
|||
| ecza: 2372b67 | sorear++ | (4 files): Move defined, WHAT, isa, does into the RI so non-DynObjects can be more first |
|||
|
22:11
molaf joined
22:15
molaf joined
22:17
daemon joined
22:19
c0nspiracy__ left,
petdance joined
22:40
alester joined
|
|||
| lue | rakudo: say '2' + 1 | 22:44 | |
| p6eval | rakudo 9e1bcd: OUTPUT«3» | ||
| lue | rakudo: say '0xFF' + 1 | ||
| p6eval | rakudo 9e1bcd: OUTPUT«256» | ||
|
22:54
xinming joined
23:02
tadzik joined
|
|||
| tadzik | whew, finally home. Hello #perl6 | 23:02 | |
| jnthn | o/ tadzik | 23:04 | |
| tadzik | what a funny night! | ||
| I got home with plenty of walking, a bus, and two times hitchhiking | 23:05 | ||
| gods bless friendly people in the middle of the night | |||
| jnthn | :-) | ||
| tadzik | anything funny to do? :) | 23:13 | |
| jnthn | Wódka? ;-) | 23:15 | |
| cognominal | rakudo: Perl6::Compiler.new.parse: | 23:16 | |
| tadzik | :D | ||
| p6eval | rakudo 9e1bcd: OUTPUT«===SORRY!===Confused at line 22, near "Perl6::Com"» | ||
| tadzik | jnthn: I'm drinking mint at the moment :) | 23:17 | |
| jnthn | tadzik: Ah, I just has piwo. :-) | ||
| tadzik | jnthn: two after me :) | ||
| and a concert | |||
| jnthn | Nice :-) | ||
| cognominal | rakudo: Perl6::Compiler.new.parse("1") | 23:20 | |
| p6eval | rakudo 9e1bcd: OUTPUT«Method 'parse' not found for invocant of class 'Undef' in main program body at line 22:/tmp/gojodnTMch» | ||
| cognominal | rakudo: Perl6::Compiler.new.parse | ||
| p6eval | rakudo 9e1bcd: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected in main program body at line 22:/tmp/Fs_W4irOfp» | ||
| cognominal | I am totally confused | ||
| jnthn | ...me too! | 23:22 | |
| oh | |||
| Did you want Perl6::Grammar.parse ? | |||
| cognominal | maybe, but that does not explain the error messages | 23:23 | |
| jnthn | No, those are odd. :S | ||
| Oh | |||
| cognominal | the compiler has an heisen-parse method? | ||
| jnthn | .new probably doesn't make much sense. | ||
| There's probably an instance with the grammar etc already. | 23:24 | ||
| sorear | jnthn: Do you think we could usefully collaborate on the MOP stuff? I need a new MOP for my .NET runtime too | 23:27 | |
| jnthn | sorear: Perhaps, yes. | 23:28 | |
| sorear: I've got some increasingly concrete ideas on what I want things to look like, and am prototyping 'em. | |||
| sorear | Care to share? | 23:29 | |
| jnthn | I've not written much up yet | ||
| There's some initial hacking in github.com/jnthn/6model/ | |||
| But I plan to blog a bunch of motivation for the design and details etc. | |||
| What's in that repo so far is a very-tiny-PAST subset to .Net translator. | 23:30 | ||
| sorear s/http/git/; s|/$|.git| | |||
| jnthn | And a small bit of runtime stuff. | 23:31 | |
| Oh, and a ROADMAP. :-) | |||
| Once I get happy enough with the design, I plan to port it to Parrot. | |||
| I expect we'll end up with a branch of NQP for a while. | |||
| And then re-build Rakudo atop of that branch, in another branch | 23:32 | ||
| Kinda like the alpha => ng transition, but not so painful. :-) | |||
| Anyway, my primary goal is to get Rakudo the speed gain ASAP, but also get us towards another backend. | 23:33 | ||
| And as part of that, I wanted to do the first cut of the meta-model off Parrot, given I'm familiar with how Parrot looks, and wanted to make sure I didn't design something that'd be hard to port elsewhere later. | 23:34 | ||
| gist.github.com/524444 is a gist of the (few!) things it can handle so far. | |||
| Once it's bootstrapped, I expect the whole compilation model for objects to change quite a bit. | 23:35 | ||
| So we'll make the meta-objects at parse time. | |||
| We'll likely get there on Parrot first. | |||
| Well, unless the bootstrapping onto .Net happens really fast. :-) | 23:36 | ||
| pmichaud | good evening, #perl6 | 23:46 | |
| jnthn | hi, pmichaud | ||
|
23:46
M_o_C joined
|
|||
| tadzik | goodnight :) | 23:50 | |
|
23:57
ashleydev joined
23:58
ashleydev joined
|
|||