Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-08-14

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

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

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

Perl 6 | Reference Documentation | Rakudo