Camelia, the Perl 6 bug

IRC log for #perl6, 2006-11-02

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:01 * TimToady blushes
00:08 justatheory joined perl6
00:14 idiotmax joined perl6
00:14 idiotmax joined perl6
00:19 penk joined perl6
00:21 scsibug_ joined perl6
00:24 mako132_ joined perl6
00:34 cmarcelo @tell audreyt if you have free time/mind for type hackery help: in moh, (pull) and look at AnyClass type, can I do this sort of things? ("a" type is function of "c" type there)
00:34 lambdabot Consider it noted.
01:19 scsibug_ is now known as scsibug
01:20 dmq joined perl6
01:37 fglock joined perl6
01:38 pasteling "fglock" at 200.150.229.66 pasted "audreyt: translation to portuguese" (126 lines, 2.1K) at http://sial.org/pbot/20802
01:39 bonsai joined perl6
01:43 bonsai joined perl6
01:44 svnbot6 r14578 | fglock++ | Pugs-Compiler-Rule - added Pugs::Emitter::Rule::Perl6::Ratchet -
01:44 svnbot6 r14578 | fglock++ | Rules implemented in MiniPerl6; first step for bootstrapping MiniPerl6
01:59 audreyt yay finally done with the slides :))
01:59 lambdabot audreyt: You have 2 new messages. '/msg lambdabot @messages' to read them.
01:59 audreyt (well, modulo more pictures, but that's a start.)
02:00 audreyt fglock++ # translation
02:00 audreyt Uploading...
02:00 nipotaway is now known as nipotan
02:02 clkao audreyt: hey you want to do the pugs stuff on feather?
02:03 clkao i have some cycles before bed now
02:04 audreyt clkao: oh cool! is there a way to autosync your repo up?
02:04 audreyt I mean using svnsync or replay or something
02:04 clkao yes
02:04 audreyt what command should I give?
02:04 clkao you have svn 1.4 on feather?
02:04 audreyt yes
02:05 clkao oh damn. you need 1.4.1 which is unreleased
02:05 TreyHarris audreyt: congrats!  oh, by the way, LOTS of good feedback from your talks here!
02:05 clkao whooot
02:05 clkao audreyt: but i can fix pullyu to finish up the dump
02:05 audreyt clkao: uhm. you can build a 1.4.1 on feather maybe?
02:05 audreyt what's in 1.4.1?
02:05 tokuhirom is now known as toku_away
02:06 audreyt oh hey, that's a plan too
02:06 clkao fixed perl bindings to use replay
02:06 audreyt TreyHarris: ooh. what kind of feedback? :)
02:06 clkao but what do you want besides the dump?
02:06 clkao commitbit?
02:06 audreyt yes
02:06 audreyt that's all actually.
02:06 clkao btw, pushmi is working now
02:06 audreyt is it part of svk trunk?
02:06 toku_away is now known as tokuhirom
02:06 clkao but we can deal with that later
02:06 clkao no, next week probably
02:06 audreyt ok
02:06 clkao i just finished the auth relay bit today
02:06 clkao but it requires perlbal ;)
02:06 audreyt clkao++ # amazing tech
02:06 audreyt clkao: MiniPerl6 Emitter in Perl5 is going smoothly
02:06 clkao audreyt: i need a product name
02:07 audreyt so if you restrict your p6 code into a subset
02:07 clkao whooot
02:07 clkao i saw the commits
02:07 TreyHarris audreyt: that you're lovely and have impeccable fashion sense and very good command of english... and made pretty slides...
02:07 audreyt then my line-by-line MessageBus handport can be automated
02:07 clkao eggcellent
02:07 TreyHarris audreyt: there might have been a comment or two about pugs or jifty, too, but i'm not sure ;)
02:07 audreyt and then Schwern will have a much better case
02:07 audreyt to convert Jifty to use p6 signatures :)
02:07 audreyt TreyHarris: I'm not sure where the fashion sense comes part comes from, but cool :)
02:07 clkao ok. let me fsck the dump now
02:08 TreyHarris audreyt: *grin*  honestly, i think the feedback was mostly that you're an engaging speaker talking about exciting technology.
02:08 audreyt Review welcome for Consili talk: http://pugs.blogs.com/talks/conisli-ofun.pdf
02:08 audreyt Portuguese vrsion: http://pugs.blogs.com/talks/conisli-ofun-pt.pdf
02:09 lambdabot http://tinyurl.com/yys387
02:09 audreyt TreyHarris: *blush* :)
02:10 clkao audreyt: do you mention hackerkitchen?
02:10 audreyt I compared cooking to hacking free software
02:10 svnbot6 r14579 | fglock++ | Pugs-Compiler-Rule - added test contributed by ashleyb++ that makes PCR hang; no solution yet
02:11 audreyt note this is a short talk, with .pt interpreters, so I effectively only have <30mins
02:11 eviltwin_b bah.  nobody's come up with a cscope-like program for haskell yet, I take it (or so google suggests to me)
02:11 audreyt hence 34 slides, not 340 slides :)
02:12 obra audreyt: nice talk
02:12 audreyt obrigada
02:14 * obra is about to dive into ODing on Jifty::DBI::Schema
02:16 * obra is afraid to warp his head like this
02:16 clkao audreyt: i tried a pushmi-powered relayed sync today. it's bloody fast
02:18 clkao audreyt: all you need is a mechnism to sync the authn file and you can have people providing distributed repository in your local continent. svk mi --relocate Just Works
02:19 audreyt you mean it's finally like darcs?
02:19 audreyt :D
02:21 audreyt all I care is that "svk ci" to mipath will suddenly consume 50% bandwidth
02:21 clkao oh that's not happening yet
02:21 clkao but oson
02:21 audreyt if that happens, that will improve my life significantly
02:21 clkao are commits really slow for you ?
02:21 audreyt yes they are
02:21 audreyt for some reason the fetch part seems slower
02:21 stevan audreyt++ # another execellent talk
02:21 audreyt when committing to openfoundry
02:21 audreyt stevan: hey :) thanks
02:21 gnuvince joined perl6
02:21 clkao yes
02:21 clkao because ra aren't reused
02:22 clkao sucks ass
02:22 clkao audreyt: remind me when i get back to london. if i didn't finish it on the flight
02:23 audreyt ok
02:23 audreyt remind me to remind you if I didn't hivemind you tomorrow
02:24 clkao we need irc to hiveminder bot
02:25 audreyt we can call the bot "mindya"
02:31 buubot joined perl6
02:33 buubot joined perl6
02:34 buubot joined perl6
02:34 buubot joined perl6
02:39 * eviltwin_b tries a make clean and full rebuild because $*BASETIME still gets the old value --- even after both adding the filter and even hacking the Prelude
02:39 audreyt eviltwin_b: you need to rm blib6/lib/*yml
02:39 eviltwin_b (only in the test script... works from command line even with Prelude loaded)
02:39 audreyt and then make again
02:39 audreyt no full rebuild needed I think.
02:39 eviltwin_b well, I think I was due for a nuke anyway
02:41 eviltwin_b for a "this ought to be an easy frst change" I sure ended up touching a lot of stuff I'm not sure I had any business touching :)
02:42 eviltwin_b http://www.ece.cmu.edu/~allbery/filetime.diff if you're curious
02:43 eviltwin_b I'm not firmly wedded to some of this stuff, e.g. where I moved the refactored time stuff
02:43 clkao appearantly there's empty revision somewhere that svnadmin load is skipping
02:43 clkao the dump is correct
02:43 eviltwin_b I should probably take time to mindmeld with the code base before I try anything else :)
02:43 audreyt maybe you just checkin :)
02:44 eviltwin_b I prefer having it pass some tests first
02:44 eviltwin_b "it compiles, ship it" might be good enough for some hackers but I like having some confidence that it actually DTRT
02:47 audreyt that's cool too :)
02:47 audreyt but if you check it in some gnomes will automagically Make It Work...
02:47 gnuvince joined perl6
02:47 eviltwin_b (I have no illusions that this is final anyway, if nothing else I've only been doing Haskell for ~ 4 months and I'm sure my code is far from idiomatic except where I copy-and-pasted
02:58 esstone joined perl6
03:00 weinig|food is now known as weinig
03:00 mjk joined perl6
03:04 clkao audreyt: what's r8696 in your mirror?
03:05 audreyt sec
03:05 clkao is openfoundry down again:?
03:05 clkao i can't do log from them
03:05 clkao fsck
03:06 seano joined perl6
03:07 audreyt it's not down for me
03:07 clkao ok. just very longddeail
03:07 audreyt there's no r8696.
03:08 clkao but there is, on the pugs repository
03:08 clkao i don't have it in my mirror either
03:14 weinig is now known as weinig|zZz
03:17 * eviltwin_b has been the victim of garbage code often enough to think it's polite to avoid subjecting others to it :)
03:18 audreyt :)
03:18 audreyt journals up. see you tomorrow... *wave* &
03:19 clkao that sounds very familiar
03:21 audreyt the rallying cry was actually "we can't depend on Data::Bind to implement Data::Bind" :)
03:21 clkao haa haa
03:40 eviltwin_b woot!  test passes.  running a full test just to be certain I didn't hork something else
03:44 mako132_ joined perl6
03:44 justatheory joined perl6
03:55 lisppaste3 joined perl6
03:57 awwaiid joined perl6
04:11 penk joined perl6
04:20 nusgnaf joined perl6
04:37 eggzeck[laptop] joined perl6
04:41 cmarcelo joined perl6
04:41 cmarcelo left perl6
04:45 penk joined perl6
04:57 Psyche^ joined perl6
04:58 SubStack joined perl6
05:03 seano joined perl6
05:07 penk joined perl6
05:14 Psyche^ is now known as Patterner
05:33 scw joined perl6
06:00 ludan joined perl6
06:01 seano joined perl6
06:13 buetow joined perl6
06:31 baest joined perl6
06:45 marmic joined perl6
06:59 Yappo joined perl6
07:06 holoway_ joined perl6
07:06 chip joined perl6
07:06 ingy joined perl6
07:06 TimToady_ joined perl6
07:06 dvorak joined perl6
07:06 hcchien joined perl6
07:06 tokuhirom joined perl6
07:06 clsung joined perl6
07:06 kolibrie joined perl6
07:06 revdiablo joined perl6
07:06 cmeyer joined perl6
07:07 ludan joined perl6
07:07 rafl joined perl6
07:11 cj joined perl6
07:42 pnu joined perl6
08:13 baest joined perl6
08:27 RichardH joined perl6
08:27 buubot joined perl6
08:29 bonsai joined perl6
08:30 RichardH Just installed GHC 6.6 using debian unstable (two debs, 1 for compiler, 1 for mtl) but make bombs out with
08:30 RichardH Setup: Warning: The field "hs-source-dir" is deprecated, please use hs-source-dirs.
08:30 RichardH Setup: error reading ./.setup-config; run "setup configure" command?
08:30 RichardH Build failed: 256 at util/build_pugs.pl line 359.
08:30 RichardH make: *** [pugs] Error 2
08:30 RichardH Can anyone helps
08:34 iblechbot joined perl6
08:38 bonsai joined perl6
08:45 mr_ank RichardH: don't you get an error right before that?
08:46 mr_ank probably from the network library?
08:46 drrho joined perl6
08:46 bonsai is now known as bons
08:46 mr_ank RichardH: try installing libghc6-network-dev
08:49 RichardH yes errors occur earlier. Didnt want to put too much junk into chat
08:49 RichardH trying the lib u mentioned
08:50 araujo mmm...
08:50 araujo RichardH, you trying to build from clean sources?
08:52 RichardH a) cant find libghc6-network-dev (I am using Synaptic package manager and I have the debian unstable repository clicked)
08:53 RichardH b) I have just updated Pugs from svn repository, and run perl Makefile.PL
08:53 tokuhirom left perl6
08:53 mr_ank RichardH: i've been using this one:
08:53 mr_ank deb http://haskell-unsafe.alio​th.debian.org/archive/i386 . unstable testing stable
08:54 lambdabot Title: Index of /archive/i386, http://tinyurl.com/ybj7tt
08:54 mr_ank Dunno if its of any help - i ran into a similar problem at first - it might be something different thou.
09:01 gene9 joined perl6
09:10 RichardH installing libghc6-network-dev (from haske-unsafe...) has not cured/affected the problem. The first error detected is
09:10 RichardH ghc-pkg: /home/richard/development/pugs/thi​rd-party/installed/packages.conf: parse error in package config file
09:30 nipotan is now known as nipotaway
09:40 penk joined perl6
09:41 ilogger2 joined perl6
09:42 arguile_ joined perl6
09:42 Debolaz joined perl6
09:42 thepler joined perl6
09:42 Eidolos joined perl6
09:43 frankg joined perl6
09:44 badalex joined perl6
09:45 SamB joined perl6
09:45 RichardH Further to pugs install problem, cleaning is the key. Hence, if pugs was first built and installed with GCH6.4, then CGH6.6 is installed, user has to issue sudo make clean, then perl Makefile.PL, etc.
09:46 gugod joined perl6
09:46 clsung joined perl6
09:51 cj joined perl6
09:51 integral joined perl6
09:56 hcchien joined perl6
10:06 amv joined perl6
10:17 gaal joined perl6
10:21 theorbtwo joined perl6
10:22 cognominal S06.pod:718  sub compare (|$args Num $x, Num $y --> Bool) { ... }   # missing comma apparently
10:22 penk joined perl6
10:26 broquaint joined perl6
10:26 nnunley joined perl6
10:42 eggzeck[laptop] joined perl6
10:51 eggzeck joined perl6
10:51 chris2_ joined perl6
10:52 pjcj joined perl6
11:04 svnbot6 r14580 | audreyt++ | * RichardH++ noticed that Pugs::Runtime::Value's MANIFEST
11:04 svnbot6 r14580 | audreyt++ |   shouldn't be in repo.
11:05 _fab joined perl6
11:06 anatoly joined perl6
11:06 anatoly is now known as anatolyv
11:19 qmole joined perl6
11:31 frederico joined perl6
11:33 Yappo joined perl6
11:47 ruoso joined perl6
12:12 kcwu joined perl6
12:21 OppaiSan joined perl6
12:21 OppaiSan left perl6
12:21 Psyche^ joined perl6
12:22 OppaiSan joined perl6
12:23 OppaiSan left perl6
12:23 tokuhirom joined perl6
12:24 elmex joined perl6
12:29 Psyche^ is now known as Patterner
12:30 justatheory joined perl6
12:42 mr_ank joined perl6
12:48 lambdabot joined perl6
12:58 mugwump_ joined perl6
13:21 kanru joined perl6
13:40 anatolyv ?eval { $a = 5; my $a; }
13:42 rgs joined perl6
13:47 cmarcelo joined perl6
13:50 xinming joined perl6
13:53 tokuhirom joined perl6
13:53 marmic joined perl6
13:53 miyagawa_ joined perl6
13:53 meppl joined perl6
13:53 Kattana joined perl6
13:53 takesako joined perl6
13:54 takanori_ joined perl6
13:54 cognominal joined perl6
13:54 beppu joined perl6
13:54 cmeyer joined perl6
13:54 spoop joined perl6
13:55 dmq joined perl6
13:55 wolverian joined perl6
13:55 xinming joined perl6
13:55 wilx joined perl6
13:55 statico joined perl6
13:55 cmarcelo joined perl6
13:55 woremacx joined perl6
13:55 lambdabot joined perl6
13:55 SubStack joined perl6
13:56 Juerd joined perl6
13:56 audreyt joined perl6
13:56 leo joined perl6
13:56 plural joined perl6
13:56 anatolyv joined perl6
13:56 qmole joined perl6
13:56 webmind joined perl6
13:56 chip joined perl6
13:56 pmichaud_ joined perl6
13:56 PerlJam joined perl6
13:56 buu joined perl6
13:56 scw joined perl6
13:56 revdiablo joined perl6
13:56 kanru joined perl6
13:56 hcchien joined perl6
13:56 tcliou joined perl6
13:56 kalven joined perl6
13:56 jiing joined perl6
13:56 elmex joined perl6
13:56 Yappo joined perl6
13:56 bennymack joined perl6
13:56 cmarcelo joined perl6
13:56 sri joined perl6
13:57 lumi joined perl6
13:57 buubot joined perl6
13:57 prism joined perl6
14:02 mtve joined perl6
14:32 Eimi joined perl6
14:38 eviltwin_b joined perl6
14:38 cognominal ?eval my Dog $spot; say $spot
14:39 eviltwin_b no evalbot, looks like
14:39 cognominal yup
14:39 cognominal it should print "Dog". I hate that.
14:40 cognominal like the "undefined" that crops everywahre in my js strings...
14:40 cognominal I have the habits of any kind of undef to stringify to ""
14:42 chris2_ joined perl6
14:43 audreyt say Dog; # prints ''
14:43 audreyt that is also surprising, though.
14:43 audreyt because in p6
14:43 audreyt my Dog $spot .= new;
14:43 audreyt is the p5 equiv
14:43 audreyt my Dog $spot = 'Dog';
14:43 audreyt $spot = $spot->new;
14:43 audreyt and when you print $spot you do get 'Dog'.
14:43 chris2_ is now known as chris2
14:45 cognominal btw:   <cognominal>S06.pod:718  sub compare (|$args Num $x, Num $y --> Bool) { ... }   # missing comma apparently
14:46 cognominal ...again, but a != one
14:46 idiotmax joined perl6
14:47 norageek joined perl6
14:47 _fab joined perl6
14:48 audreyt I thought I committed it?
14:48 lambdabot joined perl6
14:48 audreyt it now reads
14:48 audreyt    sub compare (|$args, Num $x, Num $y --> Bool) { ... }
14:49 cognominal ho, sorry
14:49 audreyt np :)
14:50 rafl joined perl6
14:51 cj joined perl6
14:51 cookys joined perl6
14:51 jrockway joined perl6
14:51 TreyHarris joined perl6
14:52 nothingmuch joined perl6
14:53 pasteling joined perl6
14:55 xinming_ joined perl6
14:56 ludan joined perl6
15:01 autark joined perl6
15:01 integral joined perl6
15:01 rlb3 joined perl6
15:01 clsung joined perl6
15:02 obra joined perl6
15:02 weinig joined perl6
15:02 rafl_ joined perl6
15:03 GeJ joined perl6
15:04 audreyt freenode is under DDoS so the bots are off
15:05 * mr_ank grabs the shotgun
15:05 integral hmm, we should keep them in the fridge then
15:05 mr_ank who do i have to shoot? how D is the DDos?
15:06 Grrrr joined perl6
15:06 anatoly joined perl6
15:06 anatoly is now known as anatolyv
15:08 fglock joined perl6
15:08 evalbot_r14583 joined perl6
15:09 svnbot6 joined perl6
15:09 audreyt whew.
15:10 anatolyv the DDos is over?
15:10 svnbot6 r14584 | audreyt++ | * MiniPerl6 AST: Add "While" and "Leave" nodes.
15:12 [particle] joined perl6
15:15 buetow joined perl6
15:15 vel joined perl6
15:17 audreyt seems so
15:19 svnbot6 r14585 | audreyt++ | * More richly annotated MiniPerl6 AST
15:20 penk joined perl6
15:22 svnbot6 r14586 | audreyt++ | * MiniPerl6: Follwing NewExp, Split Control from Exp.
15:23 iblechbot joined perl6
15:25 ofer0 joined perl6
15:31 Psyche^ joined perl6
15:31 Psyche^ is now known as Patterner
15:33 avar audreyt: there was some talk by some perl6 people to rewrite mediawiki in perl 6, remember anything about that?
15:41 svnbot6 r14587 | fglock++ | MiniPerl6 - temporarily added v6's grammar as-is
15:51 camenix joined perl6
15:53 audreyt avar: on perl6-users? faintly
15:53 rodi joined perl6
15:55 avar thanks' for the google seed, I'll read it:)
15:55 avar the $1k prize for a wiki in perl6 one?
15:55 [particle] i think i remember that, too. but i think getting rakudo.org up satisfied their immediate needs
15:57 avar how complete are the various grammar implementations currently?
15:57 avar i.e. to write something like a parser for the mediawiki syntax
15:58 clkao joined perl6
15:58 elmex joined perl6
15:58 [particle] avar: that should be implementable currently
15:59 avar Are both the parrot and Perl 6 implementations rather complete?
16:00 [particle] they're pretty darned good.
16:00 PerlJam avar: reasonably so.
16:00 svnbot6 r14588 | fglock++ | MiniPerl6 - Expression.pm is now empty; it will be replaced by a pure-rules precedence parser
16:00 PerlJam avar: Parrot is quite useable.  Pugs is also, but still slowish
16:01 avar A lot of stuff in the mediawiki syntax depends on being able to callback to php stuff, so there needs no be some C glue that handles calling php functions, e.g. to see if an article exists
16:01 hexmode joined perl6
16:02 avar I expect that there's support for that too (the C glue part)
16:02 [particle] yes, in parrot.
16:02 [particle] i expect in v6, too, since its vm is perl5
16:03 PerlJam yeah but the parrot glue is nicer than XS  :)
16:03 [particle] much nicer!
16:04 smash_ joined perl6
16:04 [particle] but chromatic's P5NCI is promising, if incomplete
16:04 avar PerlJam: example of parrot glue somewhere?
16:05 * avar has written quite a bit of XS
16:06 [particle] http://svn.perl.org/parrot/trunk​/runtime/parrot/library/SDL.pir
16:06 lambdabot http://tinyurl.com/wa6gg
16:07 [particle] take a look at eg. the _init_video sub
16:07 weinig is now known as weinig|bb
16:07 weinig|bb is now known as weinig|bbl
16:07 [particle] each binding is two lines (dlfunc/store_global)
16:08 [particle] there's a perl.com article on this...
16:09 lichtkind joined perl6
16:09 nusgnaf joined perl6
16:10 [particle] actually, two: http://www.perl.com/pub/a/​2004/12/22/mod_parrot.html and http://www.perl.com/pub/a/​2004/12/01/3d_engine.html
16:10 lambdabot Title: perl.com: Introducing mod_parrot, http://tinyurl.com/koln5
16:10 avar [particle]: your offering pleases kittie
16:11 [particle] :)
16:14 nothingmuch @tell gaal moose!
16:14 lambdabot Consider it noted.
16:15 audreyt 17:00 < PerlJam> avar: Parrot is quite useable.  Pugs is also, but still slowish
16:15 clkao audreyt: hi
16:15 audreyt well, for parsing mediawiki, I'd like a benchmark of PGE vs PCR in token/rul emode :)
16:15 audreyt clkao: heya
16:16 clkao audreyt: new pugs.repo loaded in ~clkao on feather
16:16 clkao empty revisions are now padded by pullyu
16:16 audreyt woot. how do sync it up?
16:16 audreyt PerlJam: it's not yet clear to me that the ratchet parser of PGE is significantly faster than PCR...
16:17 audreyt or any faster, in fact.
16:17 clkao audreyt: pullyu ~/.svk/local /mirror/pugs -r999@:HEAD
16:17 audreyt 999 ?
16:17 clkao it generates a dump from r999 that you can load onto existing one
16:18 PerlJam audreyt: Well, that's why I said "slowish"  because PGE seems faster (pure anecdote)
16:18 audreyt oh. so just need a wrapper
16:18 clkao i think it's currently 14581@
16:18 clkao but are you turning openfoundry off to read only?
16:18 audreyt clkao: that's the plan
16:19 clkao so make openfoundry readonly, copy acl, svk up pugs.reo on feather. profit
16:19 clkao want to make it so while i wait for laundry?
16:19 audreyt well we need to install commitbit.
16:19 PerlJam pugs repo is moving to feather?  hooray!
16:19 audreyt and make sure it works
16:19 audreyt PerlJam: yeah, finally
16:19 clkao audreyt: want to install it?
16:20 audreyt sure. I'll do that
16:20 audreyt but let me get ACL first, k?
16:21 clkao sure
16:22 clkao let me see how fast i can implement ra_replay pipeline
16:24 norageek joined perl6
16:24 rgs joined perl6
16:26 audreyt clkao: so let me make sure what we need -- everyone's password will be reset
16:26 audreyt clkao: so let me make sure what we need -- everyone's password will be resi.e. randomized
16:26 audreyt so I just get nick and email
16:26 audreyt correct?
16:27 audreyt oh and admiin_bit
16:27 clkao that should be okay
16:28 clkao basically people would just need to svn nswich --relocate or svk mirror --relocate
16:28 audreyt yup
16:28 audreyt that's like, the precondition of switching
16:29 audreyt make everybody resync 14000 revs is, uhm, dire
16:29 audreyt you don't have a RealName field?
16:29 audreyt in the model I mean
16:29 clkao i don't recall so
16:29 audreyt assuming we don't need it
16:42 weinig joined perl6
16:45 audreyt ok, downloading. eta 20min
16:45 audreyt installing commitbit now
16:46 clkao cool
16:47 audreyt do I reinvite everybody via email, or is there a way to trigger random pass regen without sending lotsa mails?
16:51 audreyt clkao: what's the DAV recipe? do I just Include httpd.conf ?
16:53 knewt joined perl6
16:54 audreyt obra++ clkao++ # CommitBit gets Very Real Very Quick
16:54 audreyt this JFDI thing is infectious...
16:59 clkao oh ya
17:02 diakopter joined perl6
17:04 obra audreyt: oh? you have commitbit running? cool!
17:05 obra I'm sorry that we had trouble getting things going on the perl.org box
17:05 obra I've not heard a peep from robrt in a few days
17:05 audreyt yeah, so I guess that's timeout for now
17:05 audreyt we can always pushmi later
17:07 obra :)
17:07 obra or work on distributed jifty apps
17:09 kanru joined perl6
17:11 cmarcelo left perl6
17:16 [smash] joined perl6
17:32 audreyt clkao: I got the ACL.
17:32 audreyt converting to .sql now...
17:33 audreyt with perl6 :)
17:34 araujo joined perl6
17:35 timbunce joined perl6
17:35 timbunce left perl6
17:37 audreyt commitbit set up and running on  feather. pondering running it on port 80...
17:37 obra use fcgi?
17:37 audreyt or speedycgi
17:37 audreyt probably fcgi.
17:38 xinming_ is now known as xinming
17:39 timbunce joined perl6
17:40 beppu joined perl6
17:40 Odin- joined perl6
17:42 obra I do not trust speedycgi
17:42 obra but I'd love a scgi handler for jifty
17:42 obra also, basedo n clkao's experiences, I think I want a perlbal
17:46 RHainsworth joined perl6
17:51 bernhard joined perl6
18:01 pasteling "audreyt" at 200.150.229.66 pasted "ppencode for cmarcelo" (142 lines, 1.8K) at http://sial.org/pbot/20815
18:01 audreyt @tell cmarcelo when you get cycles after lunch... http://sial.org/pbot/20815 please :)))
18:01 lambdabot Consider it noted.
18:02 audreyt nap, bbiab &
18:02 anatoly joined perl6
18:02 anatoly is now known as anatolyv
18:24 penk joined perl6
18:38 idiotmax joined perl6
18:39 masak joined perl6
18:45 miyagawa_ joined perl6
18:47 c6rbon joined perl6
18:51 * dmq thinks about prunes
18:51 xerox joined perl6
18:53 rodi joined perl6
19:11 penk joined perl6
19:12 Gothmog_ joined perl6
19:15 TSa joined perl6
19:29 Psyche^ joined perl6
19:29 Psyche^ is now known as Patterner
19:30 TreyHarris joined perl6
19:30 ofer0 joined perl6
19:30 buubot joined perl6
19:31 pasteling joined perl6
19:34 obra joined perl6
19:34 clkao joined perl6
19:34 idiotmax joined perl6
19:40 perlbot joined perl6
19:52 eggzeck[laptop] joined perl6
19:55 DHGE joined perl6
20:07 mauke joined perl6
20:16 SCalimlim joined perl6
20:18 fglock joined perl6
20:21 jferrero joined perl6
20:24 _fab joined perl6
20:31 cmarcelo joined perl6
20:32 cmarcelo_ joined perl6
20:33 cmarcelo joined perl6
20:34 audreyt clkao:  in your Makefile.PL
20:34 audreyt name('Text-Password-Pronouncable.pm');
20:34 audreyt is that intentional? surely you mean s/.pm// ?
20:38 shobadobs joined perl6
20:40 anatolyv audreyt: is { supposed to ideally be a macro, or is it hardcoded into the lang? I'm having trouble figuring it from the S??.
20:40 audreyt which { do you mean? :)
20:40 anatolyv audreyt: I mean, if it's a macro, I'm not seeing which category it fits in to make if expr { } etc. work.
20:41 anatolyv the one that opens any code block :)
20:41 audreyt it's circumfix:<{ }>
20:41 anatolyv but wouldn't that mean that if 2<3 say "moose!" should also work?
20:41 [particle] audreyt: pmichaud is working on past Right Now
20:42 audreyt cool
20:42 [particle] i pointed him to src/PIL/Container.hs, any other pointers?
20:42 audreyt may be fun to compare that to http://svn.openfoundry.org/​pugs/v6/v6-MiniPerl6/AST.pm
20:42 lambdabot http://tinyurl.com/yxs8nk
20:42 audreyt that's the most relevant
20:43 audreyt since fglock and I are bootstrapping PCR into Perl6 with that
20:43 [particle] great!
20:43 audreyt and I think it's a pretty solid robust design
20:43 audreyt based on previous PIL1 and PIL^N lessons
20:44 audreyt the important thing there is unpacking and pattern matching is very flexible
20:44 TimToady_ anatolyv: nope, see S02:236
20:44 audreyt and there is only binding, no assignment
20:44 audreyt and there is only lexical scope, no package scope
20:45 TSa joined perl6
20:45 [particle] hrmm no assignment, interesting
20:45 audreyt it's just you write assignment with :=
20:45 audreyt not with =
20:45 audreyt no two-level assignment
20:45 audreyt and no list context
20:45 audreyt is really the key point
20:46 audreyt since := carries no context
20:46 [particle] ok, so like your blog post mentions
20:46 audreyt and = always carries
20:46 audreyt yes.
20:46 anatolyv TimToady_: er, 236 is the line number? the para that starts with "This is an unchanging deep rule, but the surface ramifications of it"?
20:47 TimToady_ yes.
20:47 TimToady_ is now known as TimToady
20:47 ofer0 joined perl6
20:49 clkao audreyt: hi
20:49 clkao audreyt: right no .pm, sorry
20:49 anatolyv TimToady: suppose I write my own circumfix:<~ ~> (or whatever) macro that produces the same subtree of AST (or whatever) that circumfix:<{ }> produces - will "if" and "for" automatically recognize it? or is {} hardcoded into them? that's my question, I guess.
20:50 anatolyv TimToady: the place where the compiler expects { after the test expression in if is not a control_statement place, but neither is it possible to have just any Expression there, obviously. So what kind of place is it, lexer-wise?
20:56 Aankhen`` joined perl6
20:57 TimToady it is generally where an operator is expected, not a term.  the magic is actually that {...} refuses to be a term at the top level within the conditional, so must be parenthesized somehow.
20:58 * dmq peeps in
21:00 dmq did you get a chance to think about that stuff i mentioned yesterday TimToady?
21:00 anatolyv TimToady: sorry if I'm being tense, but I don't seem to understand on what basis any other operator at that place, e.g. any prefix operator, instead of {}, will be rejected.
21:01 TimToady dmq: a little, no conclusions, but wondering if we're not missing a generalization somewhere.
21:01 SubStack joined perl6
21:01 TimToady anatolyv: a prefix operator is not expected where an "operator" is expected, but where a term is expect.
21:02 TimToady the operator/term expectation is really more a "don't expect a term, expect a term" distinction
21:02 clkao audreyt: 0.26 on cpan
21:02 dmq Well, ive spoken with someone else about this, and he too was surprised by my commit, so im trying to find a better name.
21:03 dmq And im planning on renaming the one i called error commit, also because both you and he thought it was weird. (hes a prolog person)
21:03 dmq I was thinking (*NEXT) (*CUT) (*COMMIT).
21:05 anatolyv TimToady: what can appear at a place where an operator can appear but not a term? Can this be formalised in terms of what <S02:2323> claims about subsets of grammatical categories possible at each point?
21:05 TimToady when I complain about a missing generalization, I mean it sounds kind of like having different verbs for escaping out of different kinds of loops.
21:05 dmq yes, i understand.
21:05 dmq i agree. sortof.
21:06 polettix joined perl6
21:06 audreyt you mean "break" and "last"? :)
21:07 dmq i think one of the influences on my thinking is something that jeffery verbalized well in MRE2. He explained how "NFA" matching engines really have two layers.
21:07 TimToady anatolyv: yes, that's exactly how the lexer is supposed to work, in sets of grammatical categories available at any particular point.
21:07 audreyt clkao: password is plaintext in CB?
21:08 dmq the first is what he calls the transmission, and the second is the engine. Which matches up nicely with perls intuit_start/find_by_class stuff, and the real regmatch() structure.
21:08 dmq and i think it can be useful to control both independently.
21:08 clkao audreyt: audreyt i think just plaintext
21:08 audreyt k
21:09 dmq and the three, plus the two more i had in mind (*MARK:name) (*POPMARK:name), are all pretty different.
21:09 TimToady in P6 we controll the transmission with adverbs like :overlap and :exhaustive, rather than with internal backtracking tricks.
21:10 dmq but then you lose the ability to do something like what cut does.
21:10 anatolyv TimToady: understand that; trying to understand what are the grammatical categories that the lexer, coming to "{" in the "if" construct, considers available. Since { is a circumfix macro, "circumfix" must be one such category, but "prefix", according to you, is not one.
21:10 dmq or the ability to make selective on a submatch.
21:12 audreyt clkao: there's no way to initialize the admin account other than manual insertion?
21:12 audreyt that's somewhat backwards
21:12 TimToady anatolyv: depends on where you are in the if construct.
21:12 audreyt maybe a config to set root?
21:12 dmq like how would you do something like: "once you have seen this ignore everything you have seen up until now and try again"
21:12 TimToady in the normal block place, only an operator is expected because the preceding thing was a term.
21:13 TimToady and because the block requires whitespace before it, it cannot be a postfix.
21:13 clkao audreyt: i don't know. api calls?
21:13 audreyt maybe. or just Admin Console
21:14 audreyt I'll deal
21:14 TimToady if the conditional sees a {...} in the term position within the conditional, the "is parsed" of circumfix:<{ }> rejects it specially.
21:15 TimToady other circumfixes do not have this property, so parens and square brackets still work, for instance.
21:15 audreyt this is conveyed by a state carried during the parse
21:16 TimToady so to answer your underlying question, no, you can't derive the behavior merely from its circumfixhood.
21:17 anatolyv TimToady: hmm. I understand how the specialness of {} handles rejecting {...} in the top-level of a conditional.
21:17 dmq (*ADVANCE) (*PRUNE) (*COMMIT) ?
21:17 anatolyv TimToady: (thanks for explaining that)
21:18 anatolyv TimToady: what I don't seem to understand is what's the specialness of {} that makes it possible only for {} to appear in the block position of the construct, and not, say, some other circumfix whatsoever.
21:18 audreyt clkao: when you rename something an error occurs instead of a redircet
21:18 audreyt try rename repo
21:18 audreyt this is a general jifty bug :)
21:19 anatolyv TimToady: or some other kind of operator, except I don't really understand what you mean by "operator", because I'm trying to think in terms of the categories listed in S02, i.e. term, quote, prefix, postfix etc., and I don't understand which of these together make up what you refer to as not-a-term-"operator".
21:20 TimToady I say it's expecting an operator there, but {...} is really a term, and this is really a violation of the basic Perl parsing philosophy that term/term should always be a syntax error.
21:20 TimToady so we don't want to extend it to other terms in "operator" position
21:20 frederico joined perl6
21:21 TimToady when I say "operator" in this context, it means mostly infix
21:21 TimToady or some kind of terminator like a right paren
21:21 TimToady it's the meaning of operator that is just "non-term"
21:22 TimToady that is, if there were a term right here, it would be a syntax error.
21:22 anatolyv TimToady: what's a term? a (complete sub-)expression?
21:22 TimToady but you see that "if $foo {...}" really has two terms in a row, and C gets away from that by requiring non-expression parens around the conditional
21:22 obra  audreyt: there's a bundled cli tool to set up an admin account
21:23 audreyt oh hey, bin/create_admin/
21:24 * obra ponders muxing a wiki into commitbit
21:24 audreyt also when repo is nonexistent
21:24 audreyt it doesn't run svnadmin to create or warn
21:24 audreyt but that's fine
21:24 obra ...it should
21:24 TimToady anatolyv: more or less, but the lexer doesn't think in chunks that large.
21:24 obra (that may be "it doesn't check the faulure of svnadmin")
21:25 TimToady it only knows that some things can start one of those, and some things can't.
21:25 TimToady the things that can start on of those we call terms (and prefix operators)
21:25 anatolyv TimToady: and circumfix as well?
21:26 TimToady yes, those too
21:26 TimToady which is why postcircumfix is a different category
21:26 pasteling "cmarcelo" at 200.150.229.66 pasted "audreyt => ppencode in pt_BR.. first shot." (163 lines, 2.5K) at http://sial.org/pbot/20820
21:26 audreyt cmarcelo++
21:31 anatolyv TimToady: so the lexer would normally expect an operator (to continue the term that is the condition), but it sees {...} which is a term, being circumfix, and the special magic is that "if" instructs the lexer to still accept a term at this point, but not just any old term, but specifically one that starts with circumfix:<{ }>?
21:32 TimToady yes
21:32 cmarcelo joined perl6
21:32 TimToady this would be a lot easier if curlies weren't so overloaded...
21:33 TimToady but there are a number of cases where we parse statements differently from expressions, and this is one of them.
21:34 anatolyv TimToady: wow, thanks a million. It's really clear now.
21:35 anatolyv TimToady: if you think this explanation of the specialness should be in S02 somewhere, I'll be happy to write up and suggest a patch.
21:35 TimToady sure
21:36 anatolyv anatolyv: I've pored over S02 trying to understand this, but it only explains how {...} is not accepted in term position in the condition.
21:36 audreyt obra: so, it looks like we need to resend invite mail to everybody
21:36 anatolyv er, now I'm talking to myself :)
21:36 audreyt obra: because that's the only way to convey password
21:36 audreyt any better suggestions?
21:36 lichtkind TimToady++ for inventing captures (i hope i will capture this idea fully)
21:37 TimToady well, it was several of us working it out together
21:37 obra audreyt: I don't have a good other plan
21:37 TimToady I mostly just named them and noticed they were similar to Matches.
21:37 obra audreyt: did you find a way to get their password reverse engineered?
21:38 audreyt don't we require plaintext?
21:39 audreyt won't help if I get the md5 digest, right?
21:39 obra not really, no, alas :/
21:39 audreyt and I'm really afraid of storing noncomputer generated plaintext password
21:39 audreyt in a sqlite database on feather
21:39 obra so. one other option
21:39 obra is to disable the svnserve stuff and store the md5s
21:40 obra it should only be a few lines of hackery
21:40 audreyt I think we'll use dav anyway
21:40 audreyt will that help?
21:40 lichtkind TimToady maybe i wasnt there but what stunnes me that this idea seems fresh like an baby but , like we say in german, dunno any other language that knows about that
21:41 obra yes
21:41 obra then the plaintext requirement goes away
21:41 obra commitbit just needs a bit of hacking to create a mode where we store md5
21:41 audreyt ok. I can get the MD5 easily
21:42 * obra sends you a commitbit commitbit
21:42 TimToady well, it just kinda falls out of the view that binding to a Signature is a kind of pattern matching, so if you're pattern matching against something, maybe that something has a name.
21:44 TimToady and it was also kind of forced by our policy of not committing to the binding of a capture until the last moment.
21:44 svnbot6 r14589 | fglock++ | MiniPerl6 - cleanup commit error
21:44 TimToady so we needed some way to do that lazily.
21:45 audreyt it's a method call without the method, and without the call :)
21:45 TimToady and it just seemed to me that Arglist was a stupid name...
21:45 TimToady it's the grin.
21:45 audreyt := Chershire
21:45 audreyt Cheshire, even.
21:46 TimToady a Capture is a kind of project that you're putting out for bid to see which method will do it the cheapest.
21:46 * lichtkind is writing all that down for TimToadys Memoares :), ähm theory chapter for perl6tut
21:48 TimToady where "cheapest" includes the amortized costs of all potential damages
21:49 TimToady which is why it's cheaper to call more closely related methods.
21:49 TimToady Maybe that's why mayors are always awarding contracts to their relatives...
21:50 svnbot6 r14590 | fglock++ | MiniPerl6 - added a partial (but working) MiniPerl6 parser
21:51 TimToady it's a MiniPerl<mumble> parser  :)
21:52 audreyt TimToady: MP6 allows some weird binding constructs
21:52 audreyt sub f ({ foo => $x[0], bar => $x[1] }) { ... }
21:52 audreyt for example.
21:52 audreyt it's very handy, but entirely sure of sanity
21:52 hexmode joined perl6
21:52 audreyt s/entirely/not entirely/
21:52 lichtkind TimToady yes i grok that slowly and itts also coherent to have such thing if we already have an smartmatch operator, unfortunatly i dont understand your jokes fulle since its not my mother tongue
21:57 anatolyv next silly question. IIUC sigils specify the container type, that is "my $foo" is Scalar, "my @bar" is Array etc. But is that _all_ they do? That is, if I write "my $foo is MyScalar" and "my @foo is MyScalar", do I get identical behavior with merely (in the latter case) an inappropriate name?
21:58 audreyt anatolyv: in calls and assignment, they also serve as context hinters
21:58 audreyt S03:162
21:58 audreyt the @ and % sigil has an implicit list() around it
21:58 audreyt added automagically
21:59 audreyt in rvalue positions that are determined to be slurpy
21:59 audreyt in lvalue position for assignment, they cause a different infix:<=> macro to fire
22:00 audreyt such that the rhs is parsed as listop, not normal infix rhs term
22:00 audreyt and also inflicts the said implicit list() for the arguments supposed in the listop rhs.
22:00 TimToady which is why we can say @foo = 1,2,3 in Perl 6
22:00 audreyt that's all they do
22:00 anatolyv audreyt: but apart from that (did read the S03:162 thing), the actual behavior of the container is completely determined by the MyScalar class, right?
22:00 TimToady whereas Perl 5 requires @foo = (1,2,3)
22:00 audreyt anatolyv: that is correct.
22:01 audreyt in fact, the $ sigil in rvalue position cause an implicit item() around it.
22:01 anatolyv audreyt: is it specified in S?? or wherever how MyScalar actually implements that behavior? That is, what its methods should be etc.?
22:01 audreyt while the & sigil does not do that.
22:02 audreyt well, minimally it should implement infix:<=>, item and list
22:02 audreyt but no, this is not mentioned anywhere.
22:02 audreyt actually you can omit the list method
22:02 audreyt and count on the autofallback
22:03 audreyt where everything is a list of one item
22:06 audreyt it's also possible that they should be called ITEM and LIST  :)
22:06 audreyt after VAR
22:06 svnbot6 r14591 | audreyt++ | * recover the misdeleted AST.pm
22:06 audreyt to avoid conflict with ordinary method namess.
22:06 rodi joined perl6
22:07 audreyt same motivation as the renaming of .meta .type .variable etc
22:07 anatolyv ah, right.
22:07 audreyt but the idea is really simple
22:07 audreyt everything is an object if you only consider binding with full "is rw" semantics
22:08 audreyt once you consider rvalues, you need the ITEM to convert a Scalar of Int into a Int
22:08 audreyt ITEM on a Int is just itself
22:08 audreyt once you consider rvalues made in list context
22:08 audreyt then you also need LIST to convert an Hash into a List of Pair
22:08 audreyt since ITEM of a Hash is just itself and you don't want that.
22:08 audreyt and that's all, actually. VAR() is a noop to inhibit the autoannotation of ITEM and LIST.
22:09 audreyt end of (hopefully making some sense) explanation
22:09 anatolyv audreyt: what I'm hazy on is, if I have something like "my MyType $foo is MyClass", which of the two classes, MyType and MyClass, is responsible for implementing which behavior we expect from $foo. From what you're saying I gather that all MyClass is supposed to do is handle assignment and context transformations.
22:10 audreyt yes. and it receives a constraint of yType
22:10 audreyt MyType
22:10 audreyt which it is free to ignore
22:10 shobadobs_ joined perl6
22:10 audreyt also it will be assigned a ::MyType protoobject upfront
22:10 anatolyv audreyt: all method calls on $foo, whatever they are, go to MyType. All operators on $foo.. well, I don't know, I guess the builtins only specialize to Int Str etc. and you need to write others.
22:10 audreyt which follows the normal assignment rules
22:10 Limbic_Region joined perl6
22:10 audreyt all method calls on $foo normally goes to whatever MyClass.ITEM says.
22:11 anatolyv oh.
22:11 audreyt usually it's a MyType object. but you never know. maybe it's a derived class.
22:11 audreyt callMethod =<< readIORef dollarFoo
22:11 audreyt in haskell speak. where readIORef is the ITEM part
22:11 audreyt so if you say
22:12 audreyt my $moose is Int := 123;
22:12 audreyt then you don't have a Scalar
22:12 audreyt and assigning into $moose fails with Int.infix:<=> not found.
22:12 anatolyv I can say that??
22:12 anatolyv whoa.
22:12 audreyt but you can use that in rvalue
22:12 audreyt because Int.ITEM is just identity
22:12 audreyt you can also Int.LIST into a seq of one item
22:12 audreyt which is also identity
22:13 audreyt this is how we implement subroutine bindings
22:13 anatolyv can I say my $moose is int8 := 3; ?
22:13 audreyt sub f (Int $x) { ... }
22:13 audreyt here $x is Int!
22:13 audreyt not Scalar of Int
22:13 audreyt because by default unless you say "is rw" we don't alloc a Scalar
22:13 audreyt and as such $x=1 fails because Int doesn't handle assignment.
22:13 audreyt and yes, it'd be possible to say it's a int8 :=3.
22:14 audreyt still making sense? :)
22:14 anatolyv yes, perfectly :)
22:14 audreyt (patch very much welcome to S* to make it clear to non#perl6 people as well :))
22:15 anatolyv so when I call f($expr), $expr is computed and an Int object is := to it, which will fail at runtime if... er, if it can't be coerced into Int?
22:15 audreyt well, ITEM($expr) is calculated
22:16 audreyt then yes, if ::Int(ITEM($expr)) fails, it's a runtime error
22:16 audreyt we can sometimes lift that to compile time
22:16 audreyt but in general it's a runtime check.
22:17 anatolyv audreyt: this binding part, where we don't allocate a Scalar but only an Int if it's not rw - should be part of S* or pugs-specific?
22:17 TimToady though with luck it's already checked by the MMD dispatch
22:17 audreyt well, the spec only says it must reject assignment
22:17 audreyt it doesn't say that WHAT(VAR($x)) must be Int
22:17 audreyt and not ScalarReadOnly
22:17 audreyt I think it's deliberately vague
22:17 anatolyv yeah
22:17 audreyt to allow different strategies
22:18 audreyt but I'm not TimToady so I don't know :)
22:18 TimToady what makes you think TimToady knows?  :)
22:18 audreyt TimToady often knows if it's deliberately vague or accidentally vague
22:18 audreyt or just vaguely vague.
22:18 TimToady but I do accidental things deliberately all the time...
22:19 audreyt mmm Monte Carlo
22:19 TimToady I suppose the reverse also happens occasionally.
22:19 [particle] mmm accidental deliberation
22:20 anatolyv audreyt: and to have MyClass as a custom array or a hash, all I do is implement circumfix:<[ ]> etc. in it?
22:20 anatolyv audreyt: and assigning List values to it, I guess.
22:20 audreyt that is correct.
22:21 TimToady postcircumfix, surely
22:21 audreyt its infix:<=> will always expect a *@foo
22:21 anatolyv er, sorry, post, yes.
22:21 audreyt because the metamagical parser ensures it's a flattened slurpy list on rhs
22:21 audreyt and the actual signature better agree.
22:22 anatolyv audreyt: what happens now in pugs when I write "my $x = (1,2,3)"?
22:23 anatolyv audreyt: is that the correct behavior (that it works)?
22:23 audreyt sure
22:23 audreyt it evaluates infix:<,> with three arguments
22:23 audreyt which creates a Seq object
22:24 audreyt well, for sake of discussion it's a List object.
22:24 audreyt and then it calls ITEM() on it
22:24 audreyt which is identity operation
22:24 audreyt then it triggers Scalar.infix:<=>
22:24 audreyt specifically
22:25 audreyt VAR($x).infix:<=>(ITEM(::List(1,2,3)))
22:25 audreyt we have this weird magic in Scalar =
22:25 audreyt that checks if the incoming thing isa List.
22:25 audreyt if it is it allocates an Array
22:25 audreyt then call Array.infix:<=>(LIST(::List(1,2,3)))
22:25 svnbot6 r14592 | fglock++ | MiniPerl6 - implemented "Apply" node
22:26 audreyt and then put that Array object into $x.
22:26 audreyt this is weird special Scalar magic
22:26 audreyt that doesn't happen anywhere else.
22:26 audreyt it's documented vaguely in many places :)
22:26 TimToady it's placed vaguely in many documents.
22:27 [particle] is it linked smartly?
22:27 anatolyv audreyt: so after this is done, $x is still a Scalar container which contains an Array object. Right? Unlike "my @x = (1,2,3)" which will be an Array container which contains... ugh... many Num objects.
22:29 audreyt that is correct.
22:30 audreyt to be even more pedantically correct, the Array contains one part
22:30 audreyt I mean one feed
22:30 audreyt is Seq
22:30 audreyt of Int
22:30 limbic joined perl6
22:31 audreyt (to see why that needs to be the case, consider my @x = (1, 2, 3, 4..*, 9..*, 'a'..*, =<>).)
22:31 anatolyv audreyt: is there any practical differences between the two scenarios in terms of what ends up in $x versus @x? Both can be subscripted... their subscripts are lvalues... even WHAT seems to say the same thing for them.
22:31 anatolyv it just says ::Array in either case.
22:31 audreyt the difference is just if you want it to ITEM most of the time
22:31 anatolyv this is because WHAT actually acts on the ITEM of $x/@x?
22:31 audreyt or you want it to LIST most of the time.
22:32 audreyt yes, that is correct. which is why you need WHAT(VAR())
22:32 audreyt to get the true container type.
22:32 svnbot6 r14593 | fglock++ | MiniPerl6 - implemented "Call" node
22:32 audreyt in which case one is Scalar and one is Array.
22:32 audreyt because WHAT is implicitly WHAT(ITEM())
22:32 anatolyv er.
22:32 audreyt and you need the VAR to shut the autoITEM down.
22:33 anatolyv "my $tt = 1,2,3; WHAT(VAR($tt));" tells me... ::Int!
22:33 audreyt yes, because a lhs $ sigil parses as normal infix for =
22:33 audreyt so you just said
22:33 audreyt (my $tt = 1), 2, 3;
22:33 anatolyv "my $tt = (1,2,3); WHAT(VAR($tt));" tells me... ::Int!
22:33 anatolyv er
22:33 anatolyv wanted to paste that into pugs, sorry :)
22:34 anatolyv now it says ::Array again.
22:34 audreyt whew :)
22:34 anatolyv but not ::Scalar :)
22:35 audreyt [particle]: no. S02:1435 is the canonical sentence on that
22:35 audreyt yeah and that's abug :)
22:35 anatolyv whee! :)
22:35 [particle] huh?
22:36 [particle] oh, smartlinks. gotcha.
22:36 audreyt and it's linked in t/var/autoref.t
22:36 audreyt but not to that sentence
22:36 audreyt but the para above that. fixes welcome
22:36 * [particle] is buried in parrot bugs
22:37 svnbot6 r14594 | fglock++ | MiniPerl6 - implemented "Bind" node
22:37 [particle] ...they squirm, squawk, talk, and bite!
22:38 anatolyv audreyt: what does VAR produce when applied to $foo is MyClass - the actual object of MyClass that implements $foo?
22:38 Limbic_Region yes, but do they go *splat* when you squash them?
22:38 TimToady hmm, I still think the "subset X of (A|B)" syntax is insane and should be "subset X of Any where (A|b)".
22:38 [particle] yes, which is why i *love* my job :)
22:39 [particle] timtoady++
22:40 [particle] can subset foo where (...) imply 'of Any' ?
22:40 TimToady it could, but there's something to be said for forcing people to think about what the actual base type is.
22:40 TimToady or ought to be...
22:41 TimToady doesn't actually make much difference for objects, but it does when you start subsetting value types
22:41 [particle] true, but it would subset declarations less verbose
22:48 TimToady anyway, I'd definitely prefer "subset X where A|B" over "subset X of (A|B)" on the assumption we really are constraining to a list of possibilities, not constructing a type that is a set of types.
22:48 frederico joined perl6
22:48 TimToady Junctional types are not really sane.
22:49 TimToady Junctional constraints are fine though.
22:50 TimToady anyway, I just noticed that MiniPerl6 is using junctional type notation, and it bugged me.
22:52 cognominal speaking of junction, I have trouble to understand the remove method of Set.pm :(
22:52 cognominal I can't grasp what means  none(@items)
22:55 cognominal ha, ok. got it.
22:56 TimToady seems like it would have been a lot clearer with $_ !=== any(@items)
22:56 cognominal indeed
22:56 TimToady or not $_ === any()
22:57 TimToady since English tends to do that not raising.
22:57 hexmode joined perl6
23:01 audreyt TimToady: uhm. it shouldn't bug you
23:01 audreyt S06:1505
23:01 audreyt and 1507
23:01 audreyt it's canonicalized shorthand
23:01 audreyt :)
23:02 audreyt (and operationally equivalent)
23:02 audreyt Anywhere you can use a single type you can use a set of types, for convenience
23:02 audreyt specifiable as if it were an "or" junction:
23:02 audreyt my Int|Str $error = $val;              # can assign if $val~~Int or $val~~Str
23:02 audreyt so seems to me that the "of (Foo|Bar)" is allowed when "of Foo" is allowed
23:03 audreyt I finally found a sane encoding for tagged unions, so I'd like to not have that slilp :)
23:03 audreyt *slip
23:08 audreyt clkao: where is this pullyu program ?
23:08 audreyt I'd like to sync up and send out some test invitation now
23:10 TimToady audreyt: but that's not really true.  class Int|Str { method new {...} } is not allowed.
23:10 audreyt Juerd: can I mkdir /var/svn for repo?
23:10 TimToady my Int|Str $x .= new is also a failure
23:10 audreyt TimToady: it's not a type there though.
23:11 audreyt and I imagine in the second case $x can't be initialized
23:11 audreyt so it's Undef.new
23:11 audreyt and fails
23:11 audreyt or it's Failure.new
23:11 audreyt and fails
23:11 audreyt but as a type (instead of proto) it's kosher
23:11 audreyt i.e. it's not a junctional type, it's a union type
23:11 TimToady as a constraint it's kosher
23:11 Juerd audreyt: I prefer /data/svn
23:11 audreyt I'll use that then
23:12 audreyt Juerd: you okay with feather being pugs's master repo? :)
23:12 Juerd audreyt: I'd like to keep system directories for their intended purposes, as per Debian packages.
23:12 clkao audreyt: svk/utils
23:12 audreyt clkao: ack
23:12 TimToady whether a constraint is a type is gonna depend on how we define "type"
23:12 Juerd audreyt: Depends how much bandwidth that'll use. Can you estimate?
23:12 audreyt no. what's the cap?
23:13 svnbot6 r14595 | fglock++ | MiniPerl6 - implemented "Lit::Object" node
23:14 TimToady whatever. given a choice between implemented with "of" and unimplemented with "where", I'll pick implemented.  :)
23:14 audreyt :)
23:14 audreyt also, where with junctions is almost impossible to make into compiletime check
23:14 audreyt and of with unions is trivial to make into compiletime check
23:14 audreyt which may also be  awin
23:14 audreyt (i.e. in MMD)
23:16 Gothmog_ generalization, I mean it sounds kind of like having different verbs for escaping out
23:16 Gothmog_                  of different kinds of loops.
23:16 Gothmog_ Oops, sorry. Doesn't mean to.
23:17 * audreyt suspects Gothmog_ is compiling lwall.quotes
23:17 Gothmog_ Probably. ;-)
23:18 TimToady but I'd like to preserve the notion that a subset type knows what it's base type is sufficiently that a generic routine could allocate a temporary value of that base type.
23:18 TimToady *its, even
23:18 TimToady I could give you more quotes if you like.
23:18 audreyt TimToady: but isn't the algorithm as simple as running GCD on it?
23:19 audreyt on them that is
23:19 TimToady in theory.  question is whether it's worthwhile forcing the declarer of the subset to think about it.  dunno...
23:22 TimToady and in this particular usage it just seems to make the subset not very "sub"
23:23 audreyt Juerd: maybe we'll run it for a couple weeks and measure
23:23 audreyt Juerd: and if that proves to be a problem, then we move to perl.org or googlecode
23:23 audreyt the url is always svn.pugscode.org
23:23 audreyt and UUID will stay same
23:23 audreyt so should be transparent to users
23:24 Juerd Okay
23:25 [smash] svn.pugscode.org TTL at name servers it's even very low :)
23:25 [smash] 5 hours
23:25 audreyt perfect for nomadic repos...
23:25 audreyt or was that monadic...
23:25 [smash] true
23:26 [smash] hehe
23:26 [smash] nomadic i guess
23:29 larsen_ joined perl6
23:30 TimToady ?eval subset X of (Int|Str); my X $x; $x.WHAT
23:30 evalbot_r14583 is now known as evalbot_r14595
23:30 evalbot_r14595 Error: No compatible subroutine found: "&of"
23:31 TimToady ?eval subset X where (Int|Str); my X $x; $x.WHAT
23:31 evalbot_r14595 ::X
23:31 TimToady looks like the of syntax isn't even supported in the Haskell parser...
23:34 TimToady ?eval subset X of Any where Int|Str; my X $x; $x.WHAT
23:34 evalbot_r14595 ::X
23:35 TimToady I guess the Haskell parser is agreeing with me.  :)
23:36 TimToady though I'd like to be able to get at that "Any" type somehow...
23:36 svnbot6 r14596 | fglock++ | MiniPerl6 - implemented "For", "While", "Return" nodes
23:36 TimToady ?eval subset X of Any where Int|Str; my X $x; $x.WHAT.of
23:36 evalbot_r14595 Error: No compatible subroutine found: "&of"
23:37 TimToady ?eval subset X of Any where Int|Str; say X.WHAT
23:37 evalbot_r14595 Error: No compatible subroutine found: "&X"
23:37 TimToady ?eval subset X of Any where Int|Str; say ::X.WHAT
23:37 evalbot_r14595 OUTPUT[X␤] Bool::True
23:37 fglock joined perl6
23:38 ashleyb joined perl6
23:40 TimToady subset Odd of Int where { $^num % 2 }; ::Odd.of
23:40 TimToady ?eval subset Odd of Int where { $^num % 2 }; ::Odd.of
23:40 evalbot_r14595 Error: No compatible subroutine found: "&of"
23:42 audreyt (it's not implemented in normal runcore :))
23:42 TimToady ?eval subset Odd of Int where { $^num % 2 }; Odd
23:42 evalbot_r14595 Error: No compatible subroutine found: "&Odd"
23:43 TimToady that's a bug
23:43 TimToady oughta at least introduce the name.
23:45 TimToady ?eval my NoneSuch $x;
23:45 evalbot_r14595 is now known as evalbot_r14596
23:45 evalbot_r14596 \::NoneSuch
23:45 nipotaway is now known as nipotan
23:45 TimToady and that should really fail...
23:48 TreyHarris if i do:  my $x = 3;  $x = 4; $x := 5;
23:49 TreyHarris is there any way I can do something with another bind or with VAR so that "$x = 6" will work again?
23:50 TreyHarris i thought of "$x := undef", "$x := Scalar", "$x := Scalar(6)", "$x := Scalar.new(6)"... none of those work
23:51 TreyHarris "$x := *" binds $x to Inf :)
23:52 Psyche^ joined perl6
23:59 audreyt TreyHarris: it's a bug :) write a test? :)

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs