Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-06-24

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:07 penk joined #perl6
00:11 Alias_ joined #perl6
00:30 baest_ joined #perl6
00:46 lichtkind joined #perl6
00:47 lichtkind what impact has take(..); value inside a gather block?
00:57 wknight8111 take is sort of like a return, except you can take multiple values in a gather
01:00 ilogger2 joined #perl6
01:06 Tene pugs: @a = gather { for 1..10 { take $_ * 2 } }; say @a;
01:06 p6eval OUTPUT[*** ␤    Unexpected " ="␤    expecting "::"␤    Variable "@a" requires predeclaration or explicit package name␤    at /tmp/dkcGvfLLXY line 1, column 3␤]
01:06 Tene pugs: my @a = gather { for 1..10 { take $_ * 2 } }; say @a;
01:06 p6eval OUTPUT[2468101214161820␤]
01:13 pugs_svnbot r20981 | diakopter++ | [yap6] fixes from 'use diagnostics'
01:13 pugs_svnbot r20982 | diakopter++ | [yap6]
01:13 pugs_svnbot r20982 | diakopter++ | * bin/test doesn't need 'use diagnostics' committed...
01:22 * diakopter read today about scattered context grammars (for context-sensitive languages) and how they enable semantic analysis (and type checking) specified directly in the grammar to be performed at parse time.  interesting stuff.
01:31 alester joined #perl6
01:33 scrottie hey, alester, why did you delete  http://www.flickr.com/photos/petdance/2588945466/ ?
01:33 lambdabot Title: Flickr: Image
01:34 alester what was it?
01:34 scrottie Am I really that ugly?
01:34 scrottie me!
01:34 alester I did?
01:34 scrottie you deleted me, you bastard!
01:34 alester I'm sorry, I had to prune down to 200 total
01:34 alester where were you?
01:34 * scrottie vanishes in a puff of filesystem block reallocation.
01:34 alester pool table?
01:34 scrottie bowling, probably
01:34 lichtkind wknight8111: sorry i ment leave
01:34 lichtkind do have leave an impact to gather too?
01:35 alester Black shirt, glasses?
01:35 alester 10 pound blue ball?
01:35 scrottie yeah.  red hair, lots of forehead.
01:35 alester what's yr email
01:35 scrottie my god... you know, I picked out two blue balls just so I could make jokes about it.  but I think I've used them all up.
01:35 scrottie scott@slowass.net
01:36 scrottie if you're going to take lots of good pics (of my good side) at YAPC, I think we could chip in for a paid flickr account.  assuming that's the reason you had to prune.
01:36 alester Flickr only lets me have 200 photos in all
01:36 alester yes, that's why
01:36 scrottie even if you give them money?
01:37 scrottie taking photos is a public service and should be encouraged.
01:37 alester No, I just didn't hve a pro account
01:37 alester Next time I'll put 'em on Picasa.
01:37 scrottie I'll try to remember to mention this again come next year.
01:37 scrottie or that =)
01:41 alester OK, exporting 113 photos to Picasa.
01:46 pugs_svnbot r20983 | Auzon++ | [gsoc_spectest] fixed eager_hyper.t to use gather/take as suggested by moritz++ (removed 2 tests; only 6 tests in this file now)
01:46 scrottie thanks for the copy of the pic.  and that's not just any black shirt... that's my SNOBOL 4 shirt!
02:02 alester scrottie: http://picasaweb.google.com/petdance/YAPCNA2008TheRawFeed
02:03 lambdabot Title: Picasa Web Albums - Andy - YAPC::NA 2008...
02:06 jjore joined #perl6
02:11 * diakopter fiddles with Devel::Pointer::PP
02:21 diakopter ... and is delighted to discover [the technique in] Sub::Become
02:56 alester http://perlbuzz.com/2008/06/yapcna-2008-photo-wrapup.html
02:56 lambdabot Title: YAPC::NA 2008 photo wrap-up - Perl Buzz
02:56 alester hey!
02:57 alester diakopter!
02:57 alester I don't remember what you look like!
02:57 alester But I DO remember you sat to my right at lunch!
02:57 alester Isn't it funny how my brane works?
03:03 Alias_ joined #perl6
03:03 SamB alester: but do you remember what he ate?
03:03 alester I think it was a sandwich on some sort of white hearty bread.
03:09 ingy scrottie: hola
03:10 Alias_ o/
03:10 ingy hi Alias_
03:14 s1n diakopter: where's the smoke tests in the pugs repo?
03:15 ingy &
03:16 Auzon s1n: pugs/t contains the Perl 6 test suite if that's what you mean
03:16 s1n Auzon: that's what i thought, it just wasn't really documented as such
03:17 diakopter s1n: and there are quite a few ways to smoke the test suite... each implementation does it uniquely
03:17 diakopter meaning Test.pm
03:17 Auzon Note that we're trying to move most of pugs/t to pugs/t/spec
03:17 apeiron joined #perl6
03:17 diakopter alester: yeah
03:18 s1n okay, well i just want to get a devenv setup tonight
03:18 s1n i checked out the pugs code, i have parrot building, what's the most advisable way of testing / modifying / adding a test to the suite?
03:20 s1n since i did a make spectest in the rakudo directory, it checked out the tests, i should be able to make changes / commits in the "t/spec" folder, right?
03:21 diakopter s1n: yes.  Try to follow the existing pattern of tagging with a region of the relevant synopsis.  if you make an error in your commit, I'm sure someone will notice and correct it :)
03:22 s1n well, i may pastebot a patch or two until i get the hang of it
03:22 s1n every company and project has their way of developing, so i'd rather just get a feel for it first :)
03:22 diakopter s1n: but also make sure to get familiar with the t/everything-but-spec so that you don't duplicate what's waiting-to-be-migrated-to-spec
03:23 s1n diakopter: gotcha
03:23 BinGOs joined #perl6
03:24 diakopter Auzon: any comments/corrections to what I said?
03:24 Auzon s1n: sure you can pastebot, but we're very forgiving in pugs/
03:24 Auzon Um... get and use 'ack'
03:24 s1n diakopter: again, since i'm new to this codebase, i'll take my time learning it's ins and outs, so i'll try not to commit anything without someone checking it over for a few commits
03:24 s1n i'm a perfectionist, i'd rather do it right or not do it at all
03:24 Auzon I guess you can use egrep if you know its patterns better than the Perl ones
03:25 s1n Auzon: i won't waste my time grepping through things, i'll see if i can get some useful ctags built
03:25 diakopter s1n: that's a little difficult when the line between perfect and pluperfect is pretty fuzzy (around here)
03:25 Auzon ctags?
03:26 s1n Auzon: google it, it can save you time :)
03:26 s1n i don't write any typed language code without it, scripting is a little different (have to kinda nudge it along)
03:27 s1n diakopter: well, yeah i realize i won't be perfect, but i want what i do first to seem that way, until i improve and what i did yesterday suddenly looks like crap :)
03:28 diakopter s/pluperfect/something else/
03:28 DietCoke parrot has tags targets.
03:29 s1n DietCoke: yeah but does perl6 / rakudo?
03:29 s1n parrot is more strongly typed
03:29 diakopter heh
03:30 s1n alright guys, since i'm ready to start playing with it, ima call it a night. i'll dink with some of the tests and see if i can get ctags built
03:30 diakopter good luck
03:31 * diakopter declares #perl6,p6l,@Larry to be autopoietic
03:36 diakopter alester: where's that mailing list you mentioned
03:36 alester rethinking-cpan
03:36 alester gogole it
03:37 diakopter good thing gogole goes to google
03:37 a-jing joined #perl6
03:37 a-jing left #perl6
03:39 diakopter alester: is it intentional that perl101 is perl5 to binary
03:39 alester ?
03:39 diakopter perl101.org
03:39 diakopter never mind
03:40 alester I don't understand what you mean "perl5 to binary"
03:41 Auzon 5 in binary is 101
03:45 alester ah
03:45 diakopter someone should make Acme::Godel, a source filter that gives you the Godel number of the source code (or maybe even the bytecode) of the script that uses it.  just gets the nth prime where n is the number represented by the program's something-endian source/bytecode representation.  okay, so probably it would never terminate on most inputs....
03:45 Auzon s1n: I don't see how ctags would help me figure out, for instance, if ^..^ was tested. Where running "ack '^\.\.^' t/" would locate them if they exist
03:46 alester because they're prefound, Auzon.
03:46 alester And you can then do stuff like "vim -t tag"
03:46 SamB diakopter: what does a prime number have to do with it?
03:47 diakopter SamB: isn't that how Godel represented the symbols in the formal languages he was analyzing?
03:47 SamB diakopter: there was no prime number
03:47 Auzon alester: I ran ctags on one of my Perl 5 projects, and it just found the subroutine names and package names. Did I miss something?
03:47 diakopter I can't type the o with dots
03:47 diakopter SamB: oh
03:47 alester Look at how ack or WWW-Mechanize do it.
03:47 alester I have a "make tags" target in most of my projects.
03:48 SamB diakopter: just interpret the source file as a little-endian number ...
03:51 diakopter actually it probably would terminate if you split it at bytes... you'd only need up through the 256th prime (1619). (multiply all the primes together to get the Godel number)
03:51 diakopter of course
03:51 diakopter that's wrong, b/c it doesn't preserve order of the bytes
03:52 SamB yeah -- just interpreting it as a radix-256 little-endian number is the thing to do
03:53 SamB or ... well, something like that
03:53 SamB need to indicate termination somehow I guess
03:53 SamB well, that's easy if your programming language doesn't use NULs in source ;-)
03:55 Alias_ joined #perl6
04:01 diakopter TimToady: SamB requests token nullator:sym<�> { <sym> <?before <sym>> }
04:02 SamB what???
04:02 diakopter ;)
04:03 SamB that isn't a NUL!
04:03 diakopter oh :/
04:03 SamB that's a U+FFFD
04:03 diakopter silly irssi
04:03 diakopter irc probably can't receive it anyway
04:03 SamB probably it would be misinterpreted as a CTCP request
05:06 scrottie Auzon, I seem to recall a "perl tags" package on CPAN.  It outputs files in the ctags format but is a bit smarter about parsing Perl.  Hrm.  PPI... hmm.
05:10 Psyche^ joined #perl6
05:41 eternaleye joined #perl6
05:49 jfredett_ joined #perl6
05:52 Alias_ Alas, PPI is too slow for most purposes
05:54 Alias_ Or at least, too slow for time-critical purposes
05:54 scrottie well, building the tags database is an off-line type activity
05:55 scrottie I guess ctags in general was made for a generally static codebase, not this agile crap the kids are smoking.
06:08 Alias_ yup
06:15 luqui joined #perl6
06:19 Alias__ joined #perl6
06:48 alester joined #perl6
06:57 iblechbot joined #perl6
07:03 Maghnus joined #perl6
07:05 xinming joined #perl6
07:09 Jedai joined #perl6
07:09 Maghnus joined #perl6
07:13 masak joined #perl6
07:14 Helios` joined #perl6
07:17 Maghnus joined #perl6
07:48 sri_work joined #perl6
08:03 Maghnus joined #perl6
08:29 IRSeekBot joined #perl6
08:29 xinming joined #perl6
08:33 elmex joined #perl6
08:43 lichtkind joined #perl6
08:50 meppl joined #perl6
08:55 penk joined #perl6
09:05 vixey` joined #Perl6
09:20 bacek joined #perl6
09:27 pugs_svnbot r20984 | moritz++ | [spec] fixed eager_hyper.t - $counter++; needs to go before take $_; to get
09:27 pugs_svnbot r20984 | moritz++ | the expected results
09:30 pugs_svnbot r20985 | moritz++ | [t] re-formulated rand() tasks in TASKS
09:43 chris2 joined #perl6
09:44 moritz_ is Complex intended to be an immutable value?
09:45 moritz_ ah, yes. Found the answer
09:48 moritz_ is anybody eager to discuss S29?
09:48 moritz_ our Seq multi method polar (Complex: $nim) is export
09:49 moritz_ shouldn't that be ... polar (Complex $nim:) ?
09:57 penk left #perl6
09:58 * scrottie slams a mug of mead and then proceeds to look incredulous.
10:02 pugs_svnbot r20986 | moritz++ | [util/perl6.vim] updated builtin types to closer match S02
10:04 elmex joined #perl6
10:08 bacek joined #perl6
10:30 moritz_ rakudo: say pi / 2
10:30 p6eval rakudo r28673 OUTPUT[1.5708␤]
10:42 Jedai joined #perl6
10:48 a-jing joined #perl6
10:48 a-jing left #perl6
10:51 moritz_ in @a[*-1], how is *-1 passed to postcircumfix:<[ ]> ?
11:02 spinclad moritz_: re polar (Complex: $nim), i second you.
11:04 moritz_ spinclad: thanks for backlogging and answering
11:04 pugs_svnbot r20987 | moritz++ | [S29] fixed signatur for polar()
11:04 spinclad re *-1, as ... an Int? 'whatever less one': the day before Forever
11:05 moritz_ that doesn't make sense
11:05 moritz_ so I somehow think it should be passed as a pair (Whatever, -1) or some such
11:06 spinclad (ie, as another special value of Int, like Int or (for Num) Inf or Nan)
11:07 moritz_ -1 but Whatever?
11:07 spinclad but i'm not thrilled about multiplying entities in a basic class like Int
11:08 moritz_ yes, that smells
11:08 spinclad if it were explicitly algebraic, so you could have 'x + 2', then saying it's simply '* - 1' would make sense to me
11:09 spinclad is (*-1) + 1 == * ?
11:10 spinclad so i dunno
11:10 moritz_ I don't think you can do meaningful arithmetic with *
11:10 moritz_ just like you can't with Inf
11:11 spinclad oh, (Inf - 1) + 1 == Inf, it's just that Inf - 1 == Inf too :)
11:12 spinclad and Inf - Inf should be NaN
11:12 moritz_ standard mathematical notation doesn't even allow you to write Inf + 1 in an expression
11:13 spinclad perhaps because it simplifies?
11:13 spinclad omega + 1, otoh, is quite standard
11:14 spinclad (omega: first ordinal infinity)
11:14 moritz_ yes
11:14 moritz_ but people who know about omega usually know the common mistakes with Inf ;)
11:15 moritz_ btw it's so nice to chat with people who have a bit of mathematical background
11:15 moritz_ it doesn't make me feel I'm an isolated über-geek ;)
11:15 spinclad here too
11:16 spinclad well, not isolated at least; and sometimes it's the right tool for the thinking
11:17 moritz_ (although I admit that (being a physicist) my approach to mathematics is sometimes overly pgramatic - "how cares if this integral is defined, as long as Mathematica can calculate its result" ;-)
11:17 moritz_ s/how/who/
11:19 moritz_ anyway, to return to the initial question, I think that pairs aren't a bad idea - I just haven't found it in the specs
11:19 moritz_ or is *-1 just frobbed into *, -1 ?
11:22 spinclad (i suspect mine may be overly abstract-nonsense - who cares about particular values, they're just maps from 1 to a target category)
11:24 spinclad looking at *-1 algebraicly, representing it as Poly(*, [1,-1]) suggests itself; Pair(*,-1) could work too.  but i don't see a deciding thought here.
11:26 mjk joined #perl6
11:27 spinclad i guess: an implementation chooses a canonical rep.  could be C<  { infix:<->(*, 1) }  > (a closure node) if it likes...
11:27 spinclad anyway, back to bed... got up after half a night to meditate and backlog &
11:29 moritz_ closures are no good idea IMHO because they are harder to introspect than ordinary data structures
11:29 moritz_ sleep well
11:30 zamolxes joined #perl6
11:31 SamB moritz_: eh?
11:31 SamB harder to introspect?
11:32 moritz_ SamB: in this context, if you have a closure $c, how do you determine if it's { infix:<->(*,1) } or { infix:<->(*,2) } ?
11:32 SamB hmm.
11:32 SamB well, I don't know what either of those are... so I dunno.
11:33 spinclad (represent them as lambda-expressions, as combinator apply-trees; canonicalize by left-most, innermost reduction (iirc))
11:33 SamB spinclad: innermost?
11:34 SamB I was under the impression that you repeatedly reduced the left-most redex
11:34 SamB which might have redexes as sub-expressions
11:34 SamB and would not be the subexpression of any other redex
11:35 SamB since I'd be measuring from the beginning
11:35 SamB going for the inner-most is STRICT evaluation...
11:35 spinclad sounds right... leftmost, lazymost reduction
11:36 SamB and normalizes less strongly
11:36 spinclad innermost may evaluate something unneeded, which may not halt...
11:37 SamB you know what's really hard to introspect?
11:37 spinclad so half a thought gives a better answer
11:38 spinclad all right, what?  # 'yo mama!'
11:39 SamB ... a value who's type you are polymorphic in
11:40 spinclad though if the type is constrained with a 'does Introspect' interface...
11:40 spinclad but if not, yeah
12:14 wilx joined #perl6
12:26 * diakopter ponders call-by-need as applied to the top-level (statement list) and "rollup" activities necessary when the grammar is adapted/swapped.
12:27 diakopter if each statement is viewed as an argument to a call of the program function...
12:30 diakopter then 'program' evaluates its arguments successively, feeding the state changes left-to-right, so one of the arguments to each successive statment is the resulting state from the prior statement
12:30 diakopter ... unless statements are to be lazily evaluated as well...!
12:31 diakopter any thoughts from anyone?
12:31 alanhaggai joined #perl6
12:36 diakopter so if the 'program' is to be compiled, the parser/interpreter (as well as the original grammar's source!) itself would need to be embedded in the program if any argument's state-flow dependencies is non-deterministic input.
12:39 diakopter continuing along those lines, when parsing, the evaluation plan can be built by recursive calls to the parser with the input and the parser-set itself as the arguments to the parser.
12:40 masak rakudo: sub say { } say "is this printed?"
12:40 p6eval rakudo r28673 OUTPUT[Statement not terminated properly at line 1, near "say \"is th"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
12:40 masak rakudo: sub say { }; say "is this printed?"
12:40 p6eval rakudo r28673 RESULT[Null PMC access in find_method()␤current instr.: '_block11' pc 38 (EVAL_13:18)␤
12:40 diakopter that would push parsing into call-by-need as well.
12:44 diakopter rakudo: sub say { sub say1 { 3.say; $_.say; }; say1(4); }; 5.say;
12:44 p6eval rakudo r28673 OUTPUT[maximum recursion depth exceeded␤current instr.: 'say' pc 100 (EVAL_11:48)␤
12:48 diakopter moritz_: I appear to have sent a non-terminating program to rakudo with an infinite recursion it couldn't detect:  ... can you kill it?
12:48 diakopter Auzon: or you
12:48 moritz_ diakopter: sure
12:49 moritz_ evalbot control restart
12:49 moritz_ # just a different try
12:49 diakopter heh
12:49 diakopter apparently it's not listening
12:49 moritz_ sh: line 1:  6311 CPU time limit exceeded PUGS_SAFEMODE=true ./pugs /tmp/uOyoSWT3xI >>/tmp/7pc2xEY7Ax 2>&1
12:49 moritz_ why doesn't that work for rakudo?
12:50 diakopter moritz_: :) not sure
12:50 p6eval joined #perl6
12:50 moritz_ BSD::Resource only checks CPU time, not run time
12:50 moritz_ maybe I should also limit runtime
12:50 diakopter apparently rakudo can detect *direct* infinite recursion, but not indirect.
12:51 diakopter badrakudo: sub say2 { sub say1 { 3.say2; }; say1(4); }; 5.say2;
12:52 diakopter pugs: sub say2 { sub say1 { 3.say2; }; say1(4); }; 5.say2;
12:52 wknight8111 joined #perl6
12:52 diakopter hm.  I guess pugs doesn't detect it either
12:52 p6eval No output (you need to produce output to STDOUT)
12:53 diakopter well pugs eventually hits some kind of limit :)
12:54 diakopter kp6: sub say2 { sub say1 { 3.say2; }; say1(4); }; 5.say2;
12:54 p6eval kp6 r20987: OUTPUT[no method 'say2' in Class 'Int'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
12:54 diakopter elf: sub say2 { sub say1 { 3.say2; }; say1(4); }; 5.say2;
12:54 p6eval OUTPUT[Can't call method "say2" without a package or object reference at (eval 119) line 5.␤ at ./elf_f line 3854␤]
12:54 moritz_ those two don't implement method fallback
12:55 diakopter oh
12:55 diakopter kp6: sub say2 { sub say1 { say2; }; say1; }; say2;
12:55 p6eval kp6 r20987: No output (you need to produce output to STDOUT)
12:56 diakopter oh wait
12:57 diakopter the earlier non-terminating input - I sent it to perl6:, not just rakudo:  oops.  I guess I should try just rakudo
12:58 diakopter rakudo: sub say2 { sub say1 { say2; }; say1; }; say2;
12:58 p6eval rakudo r28673 OUTPUT[maximum recursion depth exceeded␤current instr.: 'say2' pc 88 (EVAL_11:44)␤
12:58 moritz_ no stale perl 6 procoess whatsoever on $server
12:58 diakopter moritz_: yeah; it was only pugs that froze earlier
12:58 diakopter er, boiled.
13:00 moritz_ $state_change ;)
13:00 diakopter sublimated
13:01 diakopter plasmified
13:01 moritz_ $change_of_state_of_aggregation
13:01 diakopter fissioned
13:01 moritz_ cold fissioned? ;)
13:02 diakopter I guess there should be a way to tell rakudo what its recursion depth limit should be, when you want it to be quite deep.
13:03 diakopter and preferably not at rakudo-compile-time
13:03 moritz_ yes, but IMHO that's none of the iimportant features to implement atm
13:03 diakopter but if the recursion limit is less than a hundred...
13:04 moritz_ is it?
13:04 diakopter I don't know
13:04 moritz_ then don't worry until you hit that barrier
13:04 diakopter commute&
13:05 pugs_svnbot r20988 | diakopter++ | [yap6] disregard; work-in-progress.
13:22 pmichaud (*-1 from backscroll):   iirc, then *-1 becomes a special value of "whatever" that gets passed to postcircumfix:<[ ]>
13:22 pmichaud it was described around a year ago on p6l
13:23 pmichaud but it's still just a single argument -- it just happens to be an "interesting" value of whatever  (similar to how we can have "interesting" values of undef :-)
13:33 ludan joined #perl6
13:37 rdice joined #perl6
13:38 Lorn joined #perl6
13:47 diakopter reconfigured yap6's parser builders to call-by-need
13:49 diakopter along the way found a non-working memoization, and fixed it, yielding who-knows-how-much efficiency improvement
13:49 diakopter when inside several layers of nested closures, calls to memoize() aren't as reliable...
13:49 diakopter inlining my own memoization works a lot better :)
13:49 * moritz_ can't find the thread, searching again
13:56 aindilis joined #perl6
14:00 pbuetow joined #perl6
14:03 GeJ joined #perl6
14:05 GeJ joined #perl6
14:08 stevan_ joined #perl6
14:16 laurent_88 joined #perl6
14:26 moritz_ http://techfaux.com/2008/06/17/peta-targets-computer-programmers-with-string-of-bizarre-protests/ # OMFG
14:26 lambdabot Title: TechFaux.com - Beta � Blog Archive � PETA Targets Computer Programmers With Stri ..., http://tinyurl.com/6klbg2
14:28 stevan_ joined #perl6
14:28 pugs_svnbot r20989 | rhr++ | Add docs/p6types - a description of specced p6 roles, classes, and methods from the synopses
14:28 pugs_svnbot r20989 | rhr++ |     it's meant to be sort of a roadmap for p6 library/Prelude development
14:28 pugs_svnbot r20989 | rhr++ |     currently covers S02 and S03 (I ran out of time and tuits), please add more!
14:31 pmichaud I can't find the p6l thread about whatever * either (other than the one that introduced the concept), so maybe I'm misremembering.
14:32 moritz_ ok, I'll compose a mail to the list later
14:32 pmichaud I do recall hearing from @Larry that *-2 was passed as "whatever with an offset"
14:32 pmichaud and that it's then evaluated in context
14:34 diakopter pmichaud: http://tinyurl.com/4hcbsk
14:34 lambdabot Title: Question on your last change to S02 - perl.perl6.language | Google Groups
14:34 pmichaud diakopter++  # thanks, found it
14:35 jhorwitz joined #perl6
14:35 moritz_ diakopter++ indeed
14:39 redicaps joined #perl6
14:49 laurent_88 left #perl6
14:49 moritz_ pugs: my @a = 1, 2, 3; if @a -> $b { say $b.perl }
14:49 p6eval OUTPUT[*** Cannot bind to non-existing variable: "$b"␤    at /tmp/99rBB5Nnqx line 1, column 1␤]
14:49 moritz_ rakudo: my @a = 1, 2, 3; if @a -> $b { say $b.perl }
14:49 p6eval rakudo r28675 OUTPUT[Statement not terminated properly at line 1, near "-> $b { sa"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
14:52 hercynium joined #perl6
14:53 rakudo_svn r28676 | pmichaud++ | [rakudo]:
14:53 rakudo_svn r28676 | pmichaud++ | * Update spectest-progress.csv
14:53 rakudo_svn r28676 | pmichaud++ | * 66 files, 849 passing tests
14:54 TJCRI joined #perl6
15:02 alanhaggai joined #perl6
15:07 Alias__ joined #perl6
15:16 pugs_svnbot r20990 | rhr++ | [spec] S29-str/uc.t - ?\195?\159 -> SS is correct by Unicode 5.1.0
15:24 clintongormley joined #perl6
15:25 TimToady well, it's possible that the semantic type of * is "Equation with scalar unknown", while the type of ** is "Equation with list unknown"
15:25 TimToady or maybe slice unknown
15:25 masak TimToady: what should happen if I did `sub say { ... }` in my code?
15:26 TimToady an only sub should hide the built-in
15:26 masak ok
15:26 TimToady well, if it's "my sub"
15:26 masak and otherwise?
15:26 TimToady not clear for a package sub
15:26 TimToady but I think that it should also probably hide
15:27 masak so why the 'my'?
15:27 TimToady hides in a tighter scope
15:27 Khisanth joined #perl6
15:27 TimToady well, might be tighter or looser
15:27 TimToady packages being independent of lexical scopes
15:28 TimToady but subs defined in current package should probably be considered a scope between prelude scope and file scope
15:29 TimToady if "prelude" scope is considered a lexical scope outside file scope
15:30 TimToady that is, when searching for sub "foo", look outward in lexical scopes through file scope, then package scope, then prelude scope
15:32 TimToady on *-1, my feeling is that it should probably be a separate type for multi dispatch purposes, neither Int nor Whatever
15:33 TimToady so if there's a Relative or Unknown or Equation type, then a sig based on Whatever can reject it based on type
15:33 pmichaud that makes sense
15:34 TimToady so you get a mismatch if you say "foo" x *-1
15:34 pmichaud I was also wondering about things like   */2
15:34 pmichaud which aren't simply linear offsets
15:34 TimToady that would be legal under an equational view
15:34 pmichaud agreed.
15:34 TimToady I believe Range objects are required to perform similar transformations
15:35 TimToady so (1..10) + 5 is 6..15, etc
15:36 TimToady but Ranges don't usually have to do it lazily, as far as I can tell
15:37 TimToady it's also not clear how to handle range tests when the range goes non-linear
15:37 vixey pugs: (-2..2) ** 2
15:37 p6eval RESULT[25/1]
15:37 TimToady pugs doesn't know ranges
15:37 TimToady pugs: (-2,-1,0,1,2)**2
15:37 p6eval RESULT[25/1]
15:38 TimToady pugs: 5**2
15:38 p6eval RESULT[25/1]
15:38 vixey would maybe (-2..2) ** 2 = (0..2) & (0..2) ?
15:38 TimToady I don't do higher math :)
15:40 moritz_ I hope you don't rely on the method dispatcher to solve algebraic equations ;)
15:40 TimToady no, but the method dispatcher can hopefully detect the *need* for algebraic reasoning
15:41 jjore joined #perl6
15:41 TimToady and some of these constructs could be viewed as parametric types, I suppose
15:42 TimToady but I don't plan to solve the (-2..2)**2 problem for 6.0.0
15:43 moritz_ I don't see an intuitie solution for it
15:43 moritz_ (perhaps other than constructing a two-dimensional range, against which you can match lists of two items)
15:43 TimToady though a Whatever that transforms Fahrenheit to Celsius is probably workable :)
15:44 justatheory joined #perl6
15:45 TimToady there's doubtless some deep connection with coercions in here too
15:45 TimToady and maybe with dimensional analysis
15:48 moritz_ "dimensional analysis" sounds scary ;)
15:49 moritz_ but actually it's quite nice they way it's used in physics
15:49 TimToady indeed
15:50 moritz_ one of our teachers finished early with what he had to teach us, and then spent two hours teaching us d.a.
15:50 moritz_ it's amazing what you can derive with it
15:56 rhr if you allow arithmetic with * and **, how do you parse ******** or * ** * * ** ** * ** ** * * ?
15:58 TimToady at some point you should use real functions :)
15:58 rhr no doubt :)
15:59 TimToady * is just the "what it is" function  :)
15:59 TimToady and ** is the "what they are" function
15:59 TimToady or maybe I should say the "whatever it is" function
15:59 clintongormley left #perl6
16:00 meppl joined #perl6
16:01 kanru joined #perl6
16:03 TimToady so maybe the type of * is really Code[:($)] or some such, and ** is Code[:(*@@)]
16:04 TimToady and the value of * is really sub ($x) { $x }, the identity function
16:04 TimToady or -> $x { $x } in lambda-ese
16:05 pmichaud rhr:  parsing * ** * * ** ** * ** ** * *  is just { say "Whatever!" }   :-P
16:05 pmichaud or perhaps that should be  { .panic("Whatever!") }
16:05 TimToady actually, that fails very early with "two terms in a row"
16:07 TimToady but if that is the type of *, then we ought to be able to write "foo" x -> $x { $x } to mean the same thing, and I'm not sure that's a good idea
16:08 kanru joined #perl6
16:08 TimToady so I think I still would like Whatever to be the identity function, and the other functions be a type that is easily dispatched elsewhere
16:08 TimToady since we know that there's not much point in calling the function when it's the identity function
16:10 armagad joined #perl6
16:10 TimToady so maybe Whatever is a subtype of Transform that happens to be identity
16:12 rhr Transform is Code[:($ --> $)] or some such?
16:16 TimToady nodnod
16:17 iblechbot joined #perl6
16:37 a-jing joined #perl6
16:37 a-jing left #perl6
16:40 Lorn joined #perl6
16:44 araujo joined #perl6
16:49 [particle] joined #perl6
17:14 cognominal_ joined #perl6
17:19 barney joined #perl6
17:20 meppl joined #perl6
17:26 pugs_svnbot r20991 | Auzon++ | [gsoc_spectest] Added more tests to eager_hyper.t to check that counting the elements in the iterator completes it. (added 2 tests).
17:45 Auzon perl6: say "{}"
17:45 p6eval kp6 r20991: OUTPUT[{}␤]
17:45 p6eval ..pugs: OUTPUT[␤]
17:45 p6eval ..rakudo r28677: OUTPUT[Null PMC access in get_string()␤current instr.: 'print' pc 9875 (src/gen_builtins.pir:6483)␤
17:45 p6eval ..elf r20991: OUTPUT[{}␤]
17:48 DietCoke elf?
17:51 Jedai joined #perl6
17:54 wknight8111 joined #perl6
17:56 Auzon elf!
17:56 Auzon It's primarily mncharity's project to write a P6 compiler written in P6 that runs on P5 and does AST things using STD_red.
17:57 DietCoke elf is primarily mncharity's project to write a P6 compiler written in P6 that runs on P5 and does AST things using STD_red.
17:57 DietCoke (danke, feeding the bot if there's one)
17:57 TimToady no purl here
17:57 DietCoke elf?
17:57 Auzon perlbot: help
17:57 DietCoke not even a stupidbot. ah well.
17:57 perlbot (fact) : tell (who) about (what) : (what) > (who) : learn (what) as (info) : relearn (fact) as (info) : phone (phone #) : shorten (url) : shorten it : search (keyword) : cpan (mod) : docs (mod) : perldoc -f (func) : jargon (term) : math (expr): fortune : flip : host (type) (record) : rot13 (text) : roll (die) : tempconv (temp) : scramble (foo) : 8ball (question) : slap (who) : diss (who) : top/bottom (num) karma : geoip (ip)
17:58 TimToady diss TimToady
17:58 TimToady perlbot: diss TimToady
17:58 perlbot TimToady is my little bitch.
17:59 pmichaud pugs:  sub foo() { };  say foo().WHAT;
17:59 p6eval OUTPUT[Scalar␤]
17:59 pmichaud hrm.
17:59 Auzon perlbot: slap perlbot
17:59 * perlbot slaps perlbot around a bit with a large trout
17:59 Auzon How useful
18:00 diakopter perlbot: 8ball Xmas?
18:00 perlbot Magic 8ball says: Yes
18:00 TimToady should probably be returning Object, or something equally undeffigeneric
18:00 pmichaud Object?  Failure?  Whatever?
18:00 TimToady not Whatever, that's only for users to use
18:00 pmichaud I can have it return Object.
18:01 TimToady in Soviet Perl, Whatever asks *you* to dwim
18:01 diakopter perlbot: diss perlbot
18:01 perlbot OMG perlbot sucks.
18:01 TimToady well, Object is generic undef
18:01 TimToady pugs: say undef.WHAT
18:01 p6eval OUTPUT[Scalar␤]
18:02 pmichaud by Object do you mean the protoobject for Object ?
18:02 TimToady Scalar is not quite right, since undef shouldn't be considered a container
18:02 pmichaud or an instance of Object (besides the protoobject)?
18:02 TimToady the protoobject
18:02 pmichaud okay
18:02 pmichaud works very well for me
18:03 TimToady an instance of it wouldn't be undefined, presumably
18:03 TimToady though Object may well refuse to instantiate...
18:03 TimToady on the other hand, Object.new could just be the empty defined object
18:04 TimToady pugs: say Object.defined
18:04 p6eval OUTPUT[␤]
18:04 pmichaud should Object be the return value for any routine that doesn't explicitly provide one somehow?
18:04 TimToady pugs: say Object.new.defined
18:04 p6eval OUTPUT[1␤]
18:04 TimToady heh
18:05 TimToady hmm, well, bare return returns () or some such, so maybe item () returns Object
18:05 TimToady seems a bit harsh to call it a Failure
18:06 pmichaud S02:3175 sez:  Note that if you could
18:06 pmichaud instantiate an C<Object> it would be considered defined, and thus true.
18:06 pmichaud (It is not clear that this is allowed, however.)
18:06 TimToady clear specs++  :)
18:06 pmichaud currently in rakudo   item() is returning an empty Array.
18:06 pmichaud (just worked out that way -- I can change it to whatever else.)
18:07 pmichaud having item() return Object makes sense, though.
18:07 TimToady well, something to be said for that view too, except you wouldn't expect item() to be defined, really
18:08 TimToady and I think expecting Void context and returning nothing should result in something undefined if you're not really in Void context
18:08 pmichaud agreed.
18:09 TimToady but I'd also like to have a variety of undef that interpolates () into list context, and Object doesn't quite seem to be it
18:10 pmichaud could Object.list() return an empty list if the invocant is undefined?
18:10 TimToady so possibly item() is just (), in a Capturely way rather than an Arrayly way
18:11 TimToady we could make @(Object) return a null list
18:11 TimToady not sure what the ramifications of that would be, though
18:12 pmichaud otoh, if I have   sub foo() { return; }   and then   my $x = foo();    perhaps $x should be some sort of Failure object?
18:13 TimToady return is already defined to return a Capture, so maybe item(Capture) returns Capture if the item slot is missing? <scratches head>
18:13 pmichaud which would be different from having   return ();
18:14 TimToady maybe, if a Capture naturally, er, captures that info.  wouldn't want to force it too much though for efficiency reasons
18:15 TimToady I guess () has to be there in the Capture, or you couldn
18:15 TimToady couldn't bind it to a scalar param correctly
18:16 TimToady my ($a,$b) := ( (), () ); probably needs to do something rational
18:16 * pmichaud boggles
18:16 TimToady as does: my ($a,$b) := ( a(), b() );
18:17 Auzon rakudo: say #{{ }} 'ok';
18:17 p6eval rakudo r28678 OUTPUT[␤]
18:18 TimToady pugs: my ($a, $b) := ( list(1,2,3), list(4,5,6) ); say $b
18:18 p6eval OUTPUT[456␤]
18:18 TimToady that looks correct
18:18 cjfields joined #perl6
18:19 TimToady though probably because pugs is generating a List object rather than a Capture object, but a list of Captures should behave similarly
18:19 TimToady (when bound to a sequence of scalar params)
18:21 pmichaud pugs: my $b = list(4,5,6);  say $b
18:21 p6eval OUTPUT[4 5 6␤]
18:21 pmichaud pugs: my $b := list(4,5,6);  say $b
18:21 p6eval OUTPUT[456␤]
18:21 pmichaud okay.
18:21 TimToady pugs: my $b = list(4,5,6);  say $b.WHAT
18:21 p6eval OUTPUT[Array␤]
18:21 TimToady pugs: my $b := list(4,5,6);  say $b.WHAT
18:21 p6eval OUTPUT[Array::Const␤]
18:21 TimToady heh
18:22 cjfields TimToady: wanted to ask yesterday, but with methods versions of trans(), substr(), match(), are we allowing modifiers?
18:22 TimToady sure, they're just named args
18:23 cjfields ok
18:23 TimToady they're even spelled the same way: :g
18:23 TimToady you just pass 'em as args instead of keeping them out front
18:24 TimToady and the replacement in subst can be a closure to do the s[foo] ~= 'bar' kind of stuff
18:25 cjfields Do we want to keep :c for trans()?  I'm thinking of the many-to-one issue.
18:26 cjfields that would be 'complement' for those who got the emoticon
18:27 TimToady we could have it if it were defined carefully as "any character that does not match one of these", where "one of these" can be of variable length
18:28 TimToady it's really the same as <-[a..z]> processing in regular pattern matching
18:28 TimToady that means skip '.' unless the class matches
18:28 TimToady there's no requirement that '.' match the same length as all the elements in the class
18:29 TimToady though with our default of graphemes, it generally will be the same in terms of grapheme count
18:29 TimToady (since graphemes include any combining characters as part of the "character")
18:30 cjfields okay, thanks, that helps.
18:31 TimToady I think being grapheme-centric rather than codepoint-centric will be one of the ways in which p6 will be a disruptive technology
18:31 TimToady the user shouldn't have to worry about various Unicode representations, by default
18:32 cjfields The use of modifiers for methods, and what the modifiers mean in the context of p6 isn't indicated in S05
18:32 cjfields Don't know if it should be clarified or not
18:33 cjfields but if might help as we start implementing more and more in Rakudo
18:33 TimToady I we clarify everything everywhere, we get a combinatoric explosion :)
18:33 TimToady *If
18:33 cjfields heh, true
18:34 TimToady but that could be a valid candidate
18:34 cjfields main reason I'm working on this is for a revised bioperl (which is a mess)
18:35 cjfields so I'll be putting the grammars to good use at some point
18:35 * cjfields doesn't think {*} works with rakudo grammars yet
18:36 pmichaud do you mean actual closures, or the {*} token?
18:36 cjfields closures
18:37 pmichaud correct, we don't have that in rakudo yet.  The hooks are there, though -- just need filling in.
18:37 cjfields though I haven't toyed around with them enough
18:37 cjfields ok
18:40 ispy_ joined #perl6
18:46 TimToady they kinda work in STD5 if you are careful to write in the subset of Perl 6 that gimme5 can fake into Perl 5
18:48 Tene hmm.  closures in rakudo might be fun to work on.
18:48 aindilis joined #perl6
18:52 Alias_ joined #perl6
19:00 cjfields Tene: agreed
19:07 cognominal__ joined #perl6
19:17 Chillance joined #perl6
19:20 Auzon (diff -w)++
19:22 pmichaud rakudo already supports closures (sorta, see :outer/lexicals discussion elsewhere)... PGE just doesn't recognize them in regexes yet.
19:37 cognominal_ joined #perl6
19:48 armagad joined #perl6
19:56 gbarr joined #perl6
19:56 gbarr left #perl6
20:10 LowBass joined #perl6
20:13 pmurias joined #perl6
20:29 Auzon pugs: say +^1
20:29 p6eval OUTPUT[-2␤]
20:29 Auzon pugs: say +^1.WHAT
20:29 p6eval OUTPUT[-1␤]
20:30 Auzon pugs: say (+^1).WHAT
20:30 p6eval OUTPUT[Int␤]
20:30 moritz_ prefix:<+> on a listy thingy should always return an Int I think
20:30 pugs_svnbot r20992 | pmurias++ | [STD]
20:30 pugs_svnbot r20992 | pmurias++ | added a {*} to arglist
20:30 pugs_svnbot r20992 | pmurias++ | [pixie]
20:30 pugs_svnbot r20992 | pmurias++ | initial commit on pixie - it's a STD frontend to elf
20:30 pugs_svnbot r20992 | pmurias++ | mostly hello world works now
20:30 pugs_svnbot r20992 | pmurias++ | the closures will be translated to p6 soon, pixie_actions contains the not yet used p6
20:30 pmurias TimToady: elfish closures will be supported externaly in STD soon
20:31 moritz_ pixie++
20:31 pmurias it's a hack now
20:32 pmurias but it would be nice to have it in evalbot soon
20:32 moritz_ sure, how is it called?
20:33 pmurias perl pixie --quiet < code_file
20:33 moritz_ ok, will do
20:33 moritz_ no compilation required on evalbot side, right?
20:34 moritz_ btw evalbot needs refactoring - too much duplicated code
20:34 pmurias moritz_: you should run brew to compile pixie
20:34 moritz_ just `sh brew'?
20:36 p6eval joined #perl6
20:36 pmurias moritz_: yes
20:36 pmurias as described in the readme
20:37 pmurias README
20:37 pmurias what's the best way to get the result from a array of match objects?
20:37 * moritz_ sees no readme in misc/pixie/
20:38 b_jonas joined #perl6
20:38 moritz_ pmurias: what do you mean?
20:38 pmurias sorry, forgot to svn add it
20:39 pmurias moritz_: @array_of_match_object.map({$$_})
20:39 pugs_svnbot r20993 | pmurias++ | [pixie] added README
20:40 diakopter psixie with a silent p?
20:40 pmurias diakopter: if you like it that way
20:40 pmurias diakopter: hi
20:41 diakopter pmurias: hi
20:41 diakopter almost done with the match object tree generation for yap6
20:41 moritz_ evalbot control restart
20:41 pugs_svnbot r20994 | moritz++ | [evalbot] added pixie (but not yet included in perl6: target)
20:42 p6eval joined #perl6
20:42 moritz_ pixie: say "hi";
20:42 p6eval OUTPUT[sh: ./pixie: Permission denied␤]
20:42 * moritz_ is dump
20:42 moritz_ dumb even ;)
20:43 moritz_ evalbot control restart
20:43 pugs_svnbot r20995 | moritz++ | [evalbot] use perl to execute pixie ;)
20:43 p6eval joined #perl6
20:44 moritz_ pixie: say "hi";
20:44 p6eval OUTPUT[sh: ./pixie: Permission denied␤]
20:45 moritz_ it might help to svn up before restarting
20:45 p6eval joined #perl6
20:45 moritz_ pixie: say "hi";
20:45 p6eval OUTPUT[Can't locate STD5.pm in @INC (@INC contains: ../../src/perl6 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at pixie line 4.␤BEGIN failed--compilation aborted at pix...
20:45 diakopter gotta run gimme5..?
20:45 pmurias yes
20:45 pmurias diakopter: what is the intended advantage of yap6 over STD5?
20:45 diakopter you better hope moritz_'s server runs linux :D
20:46 moritz_ which in turn needs perl 5.10 to run
20:46 Auzon It runs Debian
20:46 moritz_ sigh
20:46 moritz_ I can just as well upgrade evalbot's chroot to lenny
20:46 Auzon Does Debian stable ship 5.10 yet?
20:46 moritz_ Auzon: no, only testing
20:46 diakopter advantage? for me to learn to write a parser [engine] (and maybe a compiler [engine]).
20:46 moritz_ Auzon: stable doesn't do version updates at all
20:46 Auzon I could compile us 5.10 if you'd prefer not to upgrade everything...
20:47 Auzon My 5.10 that I compiled on F8 was nice and fast
20:47 * diakopter recommends building specially..
20:47 moritz_ Auzon: I do prefer upgrading everything ;)
20:47 Auzon Faster than 5.10 that F9 shipped...
20:47 diakopter Auzon: w/ threads?
20:47 moritz_ Auzon: it has to be done anyway, and then we can get rid of the self-compiled ruby as well
20:47 moritz_ it'll just take some work
20:48 moritz_ doing a backup first
20:48 Auzon diakopter: Uhhh, yeah. My F8 5.10 was 32-bit defaults; my F9 is 64-bit from distro (which includes threading). So that's probably it.
20:50 diakopter pmurias: you saw my answer to whither yap6?
20:53 moritz_ IO is a bit slow on the server :/
20:54 Auzon moritz_: Perhaps we could eliminate the need for files to be written for evalbot if they accept input via STDIN?
20:54 pmurias diakopter: yes
20:55 moritz_ Auzon: it's not *that* slow. I just noticed it when copying the whole chroot
20:55 Auzon oh. :P
20:55 moritz_ Auzon: I decided against that because I didn't know if all implementations would support it
20:56 moritz_ anyway, the plan is to 1) copy the whole chroot to /new_chroot/ (currently named old_chroot, I'm going to change that... )
20:56 moritz_ 2) in /new_chroot/, upgrade to testing aka lenny
20:56 moritz_ 3) re-install all needed perl modules
20:57 moritz_ 4) test the implementations there
20:57 moritz_ 5) switch to it
20:58 pmurias diakopter: re compiler [engine] part, starting a yet another one perl6 *compiler* wouldn't be a good idea
20:58 pmurias how do i type the unicode << in vim?
20:59 pmurias or the cent?
20:59 TimToady ^K<<
20:59 TimToady ^KCt
20:59 moritz_ its AltGr+y for me ;)
20:59 TimToady or (for me) right-menu << or c/
21:00 pmurias TimToady: thanks
21:00 TimToady when in doubt, say :digraphs
21:00 pmurias i prefere not too use the mouse for coding unless i'm forced
21:01 TimToady :dig for short
21:01 TimToady somewhere I've got a program to grep through Linux's compose key database too, but I always forget where I put it
21:02 b_jonas I've put those few funny unicode characters that I need to caps-lock plus numbers in my keyboard
21:03 b_jonas so « is capslock-shift-6 now
21:03 TimToady which is just as many keystrokes as AltGr < <
21:03 moritz_ and  one more than AltGr y ;-)
21:03 b_jonas well, I rarely need those
21:03 TimToady and the << is fast because it's a repeat
21:03 b_jonas I don't write perl6 code where I'd actually need «
21:04 TimToady my favorite is AltGr oo for °
21:04 TimToady but I wish I could install the vim bindings under AltGr
21:04 TimToady never figgered out how to do that...
21:04 pmurias $<<array_of_match_objects is legal?
21:05 moritz_ TimToady: probably not handled at viim level
21:05 b_jonas and in the few cases when I actually need to write natural languages correctly, I write in LaTeX anyway so I just use commands which are ascii
21:05 TimToady moritz_: huh?
21:05 b_jonas I only put them there because I already had caps-lock as a modifier key for hungarian letters
21:05 moritz_ TimToady: probably it's done on the X layer, and vim only sees what X forwards to it
21:05 b_jonas so it was easy to set up
21:05 moritz_ TimToady: or even in kernel space
21:06 TimToady er, I meant pmurias: huh?
21:06 pmurias TimToady: a hyper op version of applying $ to match objects
21:06 TimToady moritz_: I meant, to take the vim format of digraphs and just translate it to whatever X uses
21:07 TimToady wasn't intending to use a real vim to do it
21:07 moritz_ TimToady: ah, that's a different thing
21:07 TimToady since $ is a listop, it requires space, so $« would also require a following space, I suspect
21:08 TimToady but I haven't thought much about hyperizing listops
21:08 pmurias $« @foo?
21:09 b_jonas I think you could set up the X keyboard layout to compose whatever keystrokes you want to unused function keysyms, and then bind those keysyms to something in vim
21:09 TimToady presumably that could be made to work, though currently the token is considered $\s
21:09 b_jonas depends on your configuration
21:10 TimToady b_jonas: don't wanna think that hard, just want vim bindings at the shell prompt :)
21:10 TimToady the readline vi bindings aren't that smart, I suspect
21:10 b_jonas TimToady: do you actually want to bind compose and two keys?
21:10 b_jonas to a command/
21:11 TimToady there's a database of all the sequences that you can compose, I just want to add the vim sequences
21:11 b_jonas ah, I see
21:11 b_jonas that's different
21:11 b_jonas I've no idea actually
21:11 TimToady so that, for instance AltGr Ct would do what AltGr c/ does
21:11 b_jonas I don't have composes in X so I don't know how it works
21:11 TimToady (not that I'd use that one...)
21:11 TimToady I kinda like c/
21:11 Juerd TimToady: It's in a file called Compose
21:11 TimToady yes, but that has to be compiled somewhere somehow
21:11 b_jonas last time I've seen composes was when I edited linux console keymaps
21:11 b_jonas and I didn't use them at that time either
21:11 TimToady and that's the part I've never figgered
21:12 Juerd TimToady: NAFAIK
21:12 b_jonas I juse seen them in the same original file as the rest of the keymap way
21:12 b_jonas was
21:12 Juerd I recall having changed Compose and being able to use it after restarting xdm
21:12 TimToady well, I edit the file I think it uses, and it ignores me, but maybe it's different now
21:12 TimToady haven't tried in a while
21:12 Juerd TimToady: There might be multiple Compose files. One per locale I believe.
21:12 b_jonas what?
21:12 b_jonas one per locale?
21:13 Juerd Or was it one per keyboard. I'm not sure.
21:13 TimToady I'm sure there's a way to do it, but I've been notably unsuccessful so far, is all
21:13 b_jonas how can it depend on the locale if it's handled by X itself?
21:13 b_jonas oh, one per keyboard layout
21:13 b_jonas makes more sense that way
21:13 TimToady do locate Compose on linux and you'll see 'em all
21:14 TimToady FSVO linux and locate
21:14 pugs_svnbot r20996 | Auzon++ | [gsoc_spectest] fixed test cases repeatedly assigning 'my $a' in the same scope. Also added one test for two's completement on Integers. (added 1 test)
21:14 * Auzon is thinking about moving t/data_types somehow.
21:16 moritz_ S02-types/builtin-types.t or something?
21:17 moritz_ btw some tests seem to overlap with S02-liters/radix.t
21:17 moritz_ but IIRC radix.t doesn't check WHAT
21:19 moritz_ is($a, 36893488147419103232, "we have bignums, not weeny floats");
21:19 moritz_ I like that ;)
21:20 Auzon Heh. Yeah, I wish I could take credit for amusing things like that
21:20 Auzon So is there any opposition to me moving t/data_types/* to t/spec/S02-builtin_data_types ?
21:21 moritz_ what other files would you add to that directory?
21:21 * moritz_ likes the idea of a S02-types/ dir better, and can imagine other tests might fit there
21:21 Auzon There's a bunch of tests there, such as ones for arrays, bools, enums, hashs, lists, nums, pairs, blocks, and subtypes
21:21 moritz_ ok, then it's fine
21:21 Auzon S02-builtin_data_types is mostly empty
21:22 moritz_ I didn't see it alredy existed, sorry for the noise
21:22 Auzon It's ok. :)
21:23 diakopter perhaps Prelude tests should be marked/organized as such?
21:23 moritz_ I had nearly the same idea
21:24 moritz_ at some point it might be worth trying to separate prelude tests from language tests
21:24 moritz_ but sometimes it's hard for me to figure out what exactly is prelude, and what not
21:24 Auzon Presumably, prelude tests should belong in its implementation's test directory
21:25 b_jonas how would language tests even work without a prelude?
21:25 moritz_ no, because they are specced, and thus part of the language
21:25 b_jonas they work with iniperl6 or something/
21:25 diakopter I wonder if multiple Prelude interpretations are permitted
21:25 diakopter implementations, I mean
21:26 diakopter I mean, other than the obvious yes
21:28 diakopter pmurias: what's wrong with wanting to learn how to write a compiler [engine]?
21:29 * moritz_ hopes he's upgrading the debian in the right chroot (or even in the chroot at all)
21:31 b_jonas diakopter: how would they coexist? same parrot space, or just different ones?
21:31 pugs_svnbot r20997 | Auzon++ | [gsoc_spectest] t/data_types/* -> t/spec/S02-builtin_data_types/
21:32 b_jonas in the second case I'd say surely yes, in the first case you'd have to take a bit of care so they don't clash (even if they're two copies of the same code)
21:33 * moritz_ runs one of his magic tools to see if some of the newly moved tests pass on rakudo
21:35 diakopter b_jonas: what do you mean
21:35 diakopter oh, Preludes
21:35 diakopter I meant each implementation having its own
21:35 b_jonas diakopter: oh sure in that case
21:35 b_jonas they'd probably need to have separate preludes
21:36 diakopter but why'd you mention parrot
21:36 b_jonas because some parts of the prelude would depend on internals of that implementations
21:36 b_jonas parrot's not important
21:36 b_jonas just whether it's in the same runtime space
21:37 b_jonas like, whether some parts of the program could e.g. see an Array defined by one prelude and expecting an Array defined by the other prelude
21:37 b_jonas or some other problem like that
21:37 b_jonas probably that exact thing won't be the problem because of roles and stuff
21:37 b_jonas (no-one actually wants an Array anyway)
21:37 b_jonas but something like that
21:37 diakopter BADArray
21:37 b_jonas like
21:38 b_jonas I don't know
21:38 moritz_ b_jonas: you could define a scheme that an implementation may provide parts of the prelude, and the rest is then loaded, which defines plain *everything*, and all definitions that are already there are ignored
21:38 moritz_ so if you can implement foo() in terms of bar() and the other way round, your prelude just includes both
21:38 b_jonas moritz_: yeah
21:38 moritz_ and the implementation has provide at least one of them
21:39 b_jonas actually it might be good if the prelude is coded so it's idempotent
21:39 b_jonas like plain.tex is
21:39 * diakopter looks up that word for the 3rd time this week
21:41 moritz_ my English <-> German translator says: English: idempotent. German: idempotent.
21:41 jfredett_ joined #perl6
21:42 b_jonas idempotent here means that you could load it a second time after it's already loaded and the second instance changes nothing
21:42 moritz_ ah, f(f(x)) = f(x) for all x
21:42 moritz_ b_jonas: that would be automatically true in the scheme I described above
21:45 TimToady on the other hand, loading something only to override it is wasted computation on every invocation, unless you can freeze a checkpoint or something
21:45 TimToady (which you probably want anyway)
21:46 diakopter .pmc
21:46 b_jonas moritz_: I'm not completely familiar in what tasks are delegated to the perl6 prelude
21:46 b_jonas but it can probably be solved that way
21:49 TimToady from the user's point of view it should not matter at all whether something is defined by the parser or by the prelude.  most of the operators in STD.pm could move to the prelude, which is why I put STD into the same directory in the first place
21:57 moritz_ t/spec/S02-builtin_data_types/num.t looks dubious to me
21:57 moritz_ ok(1i ~~ Num,    'Complex Numbers are Nums');
21:58 moritz_ is that test correct? don't think so
21:58 pugs_svnbot r20998 | moritz++ | [spec] fudged num.t
22:02 Auzon moritz_: What's the problem with it? :-/
22:02 moritz_ Auzon: that it allows to pass a complex number to everything that declares a "Num" interface
22:02 moritz_ rakudo: say 1i ~~ Num
22:03 p6eval rakudo r28688 OUTPUT[0␤]
22:08 Limbic_Region joined #perl6
22:12 rhr Complex isnota Num (Nums are Ordered)
22:15 moritz_ good point
22:18 wknight8111 joined #perl6
22:22 pugs_svnbot r20999 | rhr++ | [docs/p6types] All the synopses are done except S16+29
22:25 * Auzon is tempted to just change the '1i ~~ Num' test and snag r21000, but won't.
22:26 moritz_ Auzon: why not? just remove it
22:27 Auzon ok, I did.
22:27 pugs_svnbot r21000 | Auzon++ | [gsoc_spectest] removing bad test for Complex matching Num found by moritz++.
22:28 moritz_ rakudo: say 54 + 1 + 12
22:28 p6eval rakudo r28688 OUTPUT[67␤]
22:29 * moritz_ can't find 3 or 4 tests :(
22:29 Auzon where?
22:29 moritz_ in the array.t i'm fudging right now
22:36 rakudo_svn r28689 | moritz++ | [rakudo] add passing test num.t to spectest_regression
22:36 pugs_svnbot r21001 | moritz++ | [spec] start to fudge array.t, still needs much tweaking
22:38 diakopter .pmc
22:40 lichtkind_ joined #perl6
22:42 pugs_svnbot r21002 | moritz++ | [spec] S02-builtin_data_types/*
22:42 pugs_svnbot r21002 | moritz++ |    removed/replaced old kwid POD.
22:42 pugs_svnbot r21002 | moritz++ |    Many of these tests still need smartlinks
22:45 rhr here's a completely silly attempt to diagram the p6 role/class heirarchy: http://airen.bcm.umontreal.ca/p6types.png
22:46 rhr green==is red==does
22:46 moritz_ that does look scary ;)
22:48 rhr I left out all the 'is Any' connections
22:58 edpratomo joined #perl6
23:02 meppl good night
23:04 meteorja1 joined #perl6
23:07 rakudo_svn r28691 | moritz++ | [rakudo] more tests for spectest_regression
23:08 pmichaud moritz++
23:09 moritz_ and Auzon++ for moving these tests (although they weren't all sanity-checked)
23:11 moritz_ somebody with tuits could convert Ovid++'s test on p6i into a test script
23:11 * moritz_ had to go to bed right now :(
23:12 audreyt_ joined #perl6
23:36 japhb joined #perl6
23:46 Jedai joined #perl6
23:46 dolmen joined #perl6

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

Perl 6 | Reference Documentation | Rakudo