Camelia, the Perl 6 bug

IRC log for #parrot, 2011-08-06

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 * davidfetter attended one of those in '08. it's been too long
00:05 dalek rakudo/nom: 6e78299 | tadzik++ | src/ (3 files):
00:05 dalek rakudo/nom: Apply the doc trait only for the documented objects
00:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6e78299552
00:19 dalek parrot/soh-cah-toa/hbdb: 1f7aeb5 | soh_cah_toa++ | / (4 files):
00:19 dalek parrot/soh-cah-toa/hbdb: Initial implementation of breakpoints using PC value. It *actually* works. :D
00:19 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/1f7aeb5c0a
00:19 dalek parrot/soh-cah-toa/hbdb: 124a205 | soh_cah_toa++ | / (5 files):
00:19 dalek parrot/soh-cah-toa/hbdb: Initial implementation of 'backtrace' command. Also fixed how command abbreviations are interpreted.
00:19 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/124a205bc6
00:19 dalek parrot/soh-cah-toa/hbdb: 290143d | soh_cah_toa++ | src/hbdb.c:
00:19 dalek parrot/soh-cah-toa/hbdb: Removed some *really* unnecessary inline comments.
00:19 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/290143d513
00:19 dalek parrot/soh-cah-toa/hbdb: 94a7be0 | soh_cah_toa++ | src/hbdb.c:
00:20 dalek parrot/soh-cah-toa/hbdb: Removed definition of INTERP_ATTR since it's no longer needed.
00:20 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/94a7be0f68
00:20 dalek parrot/soh-cah-toa/hbdb: 70b081a | soh_cah_toa++ | / (2 files):
00:20 dalek parrot/soh-cah-toa/hbdb: Moved macro and type definitions to include/parrot/hbdb.h as this is a more appropriate place for them.
00:20 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/70b081aae3
00:20 dalek parrot/soh-cah-toa/hbdb: f3a79cd | soh_cah_toa++ | / (2 files):
00:20 dalek parrot/soh-cah-toa/hbdb: Initial work on ranges for 'list' command. Incomplete but mostly works except for numbers < 5.
00:20 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/f3a79cd2be
00:21 tadzik oho, soh-cah-toa's back :)
00:26 dalek parrot/soh-cah-toa/hbdb: ee10b3a | soh_cah_toa++ | src/hbdb.c:
00:26 dalek parrot/soh-cah-toa/hbdb: Vertically align hbdb_cmd_t definitions.
00:26 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/ee10b3af86
00:38 dalek rakudo/nom: b1c1886 | jonathan++ | src/binder/bind.c:
00:38 dalek rakudo/nom: Unlike arrays, Parrot Hashes deep clone, which does the very wrong thing if you just want shallow. Fixes nested signatures involving nameds.
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1c1886124
00:38 dalek rakudo/nom: 0d9382f | jonathan++ | src/core/Mu.pm:
00:38 dalek rakudo/nom: Mu.Capture, which coerces to a Capture based on the public attributes.
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0d9382fdfe
00:38 dalek rakudo/nom: 65f9068 | jonathan++ | t/spectest.data:
00:38 dalek rakudo/nom: Run S06-signature/tree-node-parameters.t
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65f90688a2
00:38 dalek rakudo/nom: 5972bb9 | jonathan++ | src/core/Any.pm:
00:38 dalek rakudo/nom: Add eqv case for Capture. Oddly, if you try and eqv the same Capture with itself it comes back as False; I fear some list nommage is going on somewhere.
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5972bb9da5
00:42 dalek rakudo/nom: 3aafdc9 | jonathan++ | NOMMAP.markdown:
00:42 dalek rakudo/nom: Update nommap.
00:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3aafdc9be1
00:47 dalek rakudo/nom: e084f6a | jonathan++ | .gitignore:
00:47 dalek rakudo/nom: Add Pod/To/Text.pir to .gitignore.
00:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e084f6ae37
00:49 whiteknight joined #parrot
00:53 whiteknight good evening, #parrot
00:53 cotto_work hi whiteknight.  How's the new house going?
00:53 whiteknight it isn't
00:55 dalek rakudo/nom: 46c05e2 | jonathan++ | src/binder/bind.c:
00:55 dalek rakudo/nom: Unbust hash part of |$c binding in signatures.
00:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46c05e2994
00:55 dalek rakudo/nom: e606577 | jonathan++ | NOMMAP.markdown:
00:55 dalek rakudo/nom: Another nommap update.
00:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e606577c00
00:55 cotto_work whiteknight: blargh.
00:55 whiteknight that's what I said
00:56 whiteknight plus, curse words
01:04 dalek Rosella/gh-pages: eeb7306 | Whiteknight++ | libraries/ (2 files):
01:04 dalek Rosella/gh-pages: Flesh out template and utilities pages
01:04 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/eeb7306880
02:01 cotto ~~
02:18 kurahaupo joined #parrot
02:38 elmex joined #parrot
02:45 davidfetter joined #parrot
03:39 theory joined #parrot
04:18 dalek website: soh_cah_toa++ | IMCC Wars: Episode IV - A New Hope
04:18 dalek website: http://www.parrot.org/content/​imcc-wars-episode-iv-new-hope
04:27 cotto hope is good
04:38 evhan left #parrot
05:04 dalek rakudo/nom: 11d46b3 | pmichaud++ | src/Perl6/Actions.pm:
05:04 dalek rakudo/nom: More hyper metaop code, still not complete.
05:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11d46b3af3
06:19 dukeleto msg soh_cah_toa nice blog post
06:19 aloha OK. I'll deliver the message.
06:40 fperrad joined #parrot
06:55 woosley joined #parrot
08:03 Kulag joined #parrot
08:08 mj41 joined #parrot
08:16 Kulag joined #parrot
08:19 dafrito I noticed that the generated PIR for the lua grammar is like, 14k lines. This seems a little excessive, esp. considering lots of it is repetitive
08:19 dafrito Am I crazy for wanting to tinker with the PGE source?
08:30 sorear Yes.
08:30 sorear PGE is officially unmaintained.
08:30 sorear You should consider moving it to NQP or NQP-rx
08:33 cotto dafrito, PGE is in update-only mode.  We'll keep it running, but nothing more.
08:37 cotto not quite unmaintained, but close
08:40 dafrito cotto, sorear  ah, okay, I'll look into those then. lua's compiler uses PGE and TGE. So it'd be beneficial to port that stuff to NQP, right?
08:40 dafrito that stuff = lua's compiler
08:41 cotto dafrito, it'd be a substantial project
08:41 cotto i.e. complete rewrite
08:45 dafrito cotto, hmm, yeah :/
08:46 cotto btw, thanks for the m0 comments
08:47 dafrito no problem, they weren't groundbreaking by any means ;)
08:47 dafrito I look forward to reading the mole spec when it comes around
08:48 cotto If you ever wanted to help write a language spec, now's a good time to jump in.
08:58 dafrito cotto, well, honestly, I'd love to. I'm really green when it comes to parrot internals, though. I've mostly just been scouring all the available docs and planet parrot
08:58 dafrito and trying to find books on language and compiler design
08:59 cotto There's a lot to be said for learning by doing.
09:03 SHODAN joined #parrot
09:29 tadzik hello #parrot
09:32 whiteknight joined #parrot
09:37 whiteknight good morning, #parrot
09:38 whiteknight soh_cah_toa++
09:48 dalek rakudo/nom: 3853e1b | jonathan++ | t/spectest.data:
09:48 dalek rakudo/nom: Disabling S02-builtin_data_types/instants-and-durations.t - it reliably hangs for me during the spectest run.
09:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3853e1b7d4
10:04 Kulag joined #parrot
10:08 Kulag joined #parrot
10:15 dalek Rosella/gh-pages: f0f9366 | Whiteknight++ | libraries/template.md:
10:15 dalek Rosella/gh-pages: Fix doc typo
10:15 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/f0f9366a38
10:22 dafrito I'd kind-of like to add this diagram to the PCT tutorial: https://files.dafrito.com/parse-process.png It lists these stages in ep2, and I think an image might be easier on the eyes
10:23 whiteknight dafrito: it's nice, simple, straightforward. I like it
10:23 whiteknight Add it in, open a pull request
10:23 dafrito whiteknight, thanks, will do
10:23 Kulag joined #parrot
10:24 whiteknight msg NotFound I added a prefix:* operator, which is the same as "using" but an expression: https://github.com/Whiteknight/winxed/commi​t/88f8f694b941908eccd767d02b7134163d04effe
10:24 aloha OK. I'll deliver the message.
10:25 whiteknight say(*Rosella.Query.as_queryable([1, 2, 3, 4]).fold(->(s, i) s + i).data());
10:25 dafrito What should the image URL be? I can easily get it to work locally, but I don't know how that will translate to docs.parrot.org
10:25 whiteknight dafrito: let me look. We had another docs image somewhere that you can copy
10:26 dafrito whiteknight, oh, nvm, I think I found out how to do it
10:26 whiteknight ok
10:27 dafrito pdd15 has an image
10:27 dafrito an image that lives in the same directory*
10:27 whiteknight yeah, that's the example I was looking for
10:28 whiteknight although, that image doesn't appear to show up on docs.parrot.org
10:30 whiteknight I'm not expert on the POD used here, or the way it's converted to html
10:31 woosley left #parrot
10:33 dalek parrot: 908cd83 | (Aaron Faanes)++ | examples/languages/squaak/d​oc/tutorial_episode_7.pod:
10:33 dalek parrot: PCT tutorial: Added a missing space in episode 7
10:33 dalek parrot: review: https://github.com/parrot/parrot/commit/908cd83907
10:33 dalek parrot: 6801e9a | (Aaron Faanes)++ | compilers/pge/README.pod:
10:33 dalek parrot: Noted that PGE is in update-only mode
10:33 dalek parrot: review: https://github.com/parrot/parrot/commit/6801e9a3e2
10:33 dalek parrot: 2225670 | Whiteknight++ | / (2 files):
10:33 dalek parrot: Merge pull request #145 from dafrito/doc_fix
10:33 dalek parrot:
10:33 dalek parrot: Doc fix from dafrito++
10:33 dalek parrot: review: https://github.com/parrot/parrot/commit/2225670414
10:38 lucian joined #parrot
10:39 dalek rakudo/nom: 614236f | jonathan++ | src/core/Capture.pm:
10:39 dalek rakudo/nom: Avoid usage of $capture.list eating the $!list in Capture by shallow cloning (pmichaud, please review).
10:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/614236fe8c
10:40 NotFound whiteknight: ping
10:42 Kulag joined #parrot
10:47 whiteknight NotFound: pong
10:49 NotFound whiteknight: I'm wondering about the semantics of that operations. The point is how to be able to specify when we want a function call or a method call.
10:51 NotFound If we have a.b.c(), we may wan the method c in the object pointed by the variable a.b, or the function c in the namespace a.b
10:54 lucian NotFound: i don't think it's possible to do that with a single syntax in a language that has both functions and special (non-function) methods
10:55 NotFound lucian: actually we do, but only when we have compile time information of the identifiers involved.
10:55 lucian NotFound: right. and for that i think a module system is necessary
10:57 whiteknight NotFound: Right, the *operation is a namespace lookup
10:57 whiteknight without the *, it's a method call, or a function call pre-declared with using
10:58 whiteknight We can come up with any other syntax we want, of course
10:59 whiteknight I could move it to a lower precidence, so you would almost be forced to write (*Foo.Bar.baz)() instead of just *Foo.Bar.baz()
11:00 lucian (Foo.Bar.Baz)() looks better to me
11:00 lucian it's very clear that the first is something, and it then gets called
11:00 whiteknight lucian: That wouldn't work. The parser would probably try to treat that like an attribute lookup instead of a method lookup
11:00 NotFound whiteknight: yes, I was wondering about possible diffreences in semantic depending on the precedence
11:00 lucian whiteknight: i know, sadly * is necessary
11:01 whiteknight or, we could do something similar in spirit to what NQP does, and use a different separator for namespace lookups
11:01 * lucian wishes more languages treated methods as attributes
11:01 whiteknight Foo::Bar::baz(), or Foo->Bar->baz(), etc
11:01 whiteknight that's ugly, but distinct
11:01 NotFound The problem is that with the parenthesis in (Foo.Bar.Baz)() the parsing is the same as without them.
11:01 * whiteknight already knows lucian's opinion of the :: syntax
11:02 lucian whiteknight: :)
11:03 whiteknight We could use & instead of *. Both of them are C++ish
11:03 lucian could we get away with :Foo.Bar.Baz ?
11:03 whiteknight or, we could use comma: Foo,Bar,baz()
11:03 whiteknight though, that's not very visually distinct and harder to read
11:04 tadzik backslashes :>
11:04 lucian Foo:Bar:Baz?
11:04 whiteknight ["Foo","Bar","baz"]()
11:04 lucian tadzik: or forward? Foo/Bar/Baz
11:04 whiteknight Foo\Bar\baz()
11:04 whiteknight or, unicode Foo{LOWER CASE Q WITH UMLAUT}Bar{LOWER CASE Q WITH UMLAUT}baz()
11:05 lucian whiteknight: how about that literal instead of the actual unicode char? :)
11:05 whiteknight lucian: sure. These are all equally bad ideas :)
11:06 NotFound Mmmmm... I think I've already have a way, even if ugly, to specify method call: a.b.*"c"();
11:06 lucian that is ugly, yes
11:07 whiteknight <Foo.Bar.baz>()
11:08 NotFound I'm starting to think that the better solution will be: in absence of information, assume namespace lookup for a function.
11:08 NotFound That way we don't vene need syntax.
11:08 whiteknight that gets rid of most uses of "using <IDENTIFIER>"
11:09 NotFound That is: a.b.c() means a::b::c() if a is not known at compile time.
11:09 whiteknight the only time we would need a syntax is if we had a local variable with the same name as a namespace
11:09 lucian NotFound: i like that. i'm not convinced fully qualified method calls are necessary
11:09 whiteknight lucian: think class A{ var b }, where b is an object. a.b.c() is a method on b
11:10 NotFound whiteknight: if you have a local variable with the same name, just rename it ;)
11:10 lucian whiteknight: right
11:10 whiteknight NotFound: that's what I'm thinking. I name all my namespaces with TitleCase, and all my variables with lower_case, so it's not an issue
11:10 lucian could local variables just shadow namespaces?
11:11 lucian it's familiar behaviour from closures
11:11 whiteknight that's what it would be. the parser would fallback to namespace lookup IF a variable with that name wasn't available locally
11:12 lucian right, sounds good to me
11:12 whiteknight That would also remove the need for forward declarations of functions
11:13 NotFound whiteknight: not at all. Forward declarations allows re-scoping with 'using namespace', which allows cleaner and shorter code.
11:14 whiteknight you're right. It changes from a "need" to a "want" :)
11:14 NotFound Ah, yes.
11:16 whiteknight InternalError('Bad thing');
11:16 whiteknight I like that
11:18 NotFound whiteknight: sometimes I write such things for temporary tests, and then forget to change it. Is some cases it must be "assertion failed"
11:18 whiteknight NotFound: so where do these changes need to be made, MemberExpr and CallMemberExpr?
11:20 NotFound whiteknight: yes, but it may be some corner case in other parts, not sure yet.
11:20 whiteknight ok
11:21 whiteknight this task might be beyond my skill
11:21 whiteknight or, my current knowledge of winxed
11:22 NotFound An additional problem is that I don't have enough tests to cover all the current functionality, so changes are risky.
11:22 whiteknight so we need more tests?
11:23 NotFound Alway.
11:23 Kulag joined #parrot
11:23 NotFound Maybe the easier way will be: break things, and when people complain add regression tests ;)
11:24 whiteknight shoot yourself in the foot first, ask questions later. I like it
11:25 NotFound BTW someone has reviewed the NotFound/nci_as_string branch?
11:27 whiteknight I will look at it now
11:37 whiteknight NotFound: it looks nice and easy. The only concern I have is that strlen might fail on wchar_t strings
11:37 NotFound whiteknight: is nci, you should know what you are doing.
11:37 whiteknight true
11:37 whiteknight merge it. Fix problems later
11:38 whiteknight I may want to try and merge whiteknight/imcc_tag branch soon too
11:38 NotFound Maybe to make easier to diagnose mistakes we can check that the ecnoding is compatible with C strings.
11:41 whiteknight NotFound: _str_vtable has a "scan" method which looks like it does what we want
11:42 whiteknight actually, maybe not
11:42 Drossel joined #parrot
11:42 NotFound whiteknight: I've thought about adding a pseudo encoding name called "guess".
11:42 whiteknight We might be able to add a new method to the _str_vtable to scan_raw
11:43 NotFound But for a now, I think corner cases can be worked by using binary, and then either looking at the raw bytes or try some trans encoding.
11:44 whiteknight yeah, doing this "right" is going to be a lot of work, but for now we can pass use-cases doing it the fast way
11:44 NotFound Looking at the raw data is easy via ByteBuffer
11:45 whiteknight okay
11:45 NotFound Or using sustr and ord in the binary encoded string.
11:46 whiteknight true
11:47 NotFound So, we have good building blocks for a lot of things, maybe even open the way for the "Killer App" ;)
11:48 Kulag joined #parrot
11:53 lucian joined #parrot
11:53 whiteknight plobsing++
11:53 whiteknight (I hadn't really looked at his contributions to the whiteknight/imcc_tag branch before)
11:55 kurahaupo joined #parrot
11:59 dalek parrot/NotFound/nci_as_string_ready: f68edf1 | NotFound++ | / (4 files):
11:59 dalek parrot/NotFound/nci_as_string_ready: Merge branch 'NotFound/nci_as_string' into nci_as_string_ready
11:59 dalek parrot/NotFound/nci_as_string_ready: review: https://github.com/parrot/parrot/commit/f68edf1335
12:03 Eclesia joined #parrot
12:03 Eclesia hi
12:03 Kulag joined #parrot
12:04 dalek Heuristic branch merge: pushed 25 commits to parrot/whiteknight/imcc_tag by Whiteknight
12:04 whiteknight hello Eclesia
12:04 SHODAN joined #parrot
12:07 dalek parrot: f68edf1 | NotFound++ | / (4 files):
12:07 dalek parrot: Merge branch 'NotFound/nci_as_string' into nci_as_string_ready
12:07 dalek parrot: review: https://github.com/parrot/parrot/commit/f68edf1335
12:09 ambs joined #parrot
12:44 JimmyZ joined #parrot
13:01 PacoLinux_ joined #parrot
13:07 Eclesia left #parrot
13:22 dalek parrot/whiteknight/imcc_tag: 00bd560 | Whiteknight++ | / (4 files):
13:22 dalek parrot/whiteknight/imcc_tag: rename subs_by_flag -> subs_by_tag, to be more synchronous with the :tag syntax
13:22 dalek parrot/whiteknight/imcc_tag: review: https://github.com/parrot/parrot/commit/00bd560a21
13:32 PacoLinux_ joined #parrot
13:37 JimmyZ joined #parrot
13:50 kurahaupo joined #parrot
14:04 dalek winxed: 4638dd9 | Whiteknight++ | winxedst1.winxed:
14:04 dalek winxed: Add in a SimpleReturnStatement which is like ReturnStatement but parses only a simple, single return value. Use this to cleanup the new lambda syntax with implicit return, and make it work more like a normal expression:
14:04 dalek winxed: review: https://github.com/Whiteknig​ht/winxed/commit/4638dd9bf3
14:04 dalek winxed: b4cbf9c | Whiteknight++ | / (20 files):
14:04 dalek winxed: Merge branch 'master' of github.com:Whiteknight/winxed
14:04 dalek winxed: review: https://github.com/Whiteknig​ht/winxed/commit/b4cbf9cb65
14:04 dalek winxed: 88f8f69 | Whiteknight++ | winxedst1.winxed:
14:04 dalek winxed: Add prefix-* as a function lookup operator, similar to 'using' but an expression. *Foo.Bar.baz(), etc
14:04 dalek winxed: review: https://github.com/Whiteknig​ht/winxed/commit/88f8f694b9
14:08 whiteknight dafrito
14:08 whiteknight : I'm already tired of merging your work. We need to get you a commit bit
14:10 dafrito whiteknight, haha, I'm sorry
14:10 dalek parrot/dafrito_doc_fixes: 022e217 | (Aaron Faanes)++ | tools/docs/make_html_docs.pl:
14:10 dalek parrot/dafrito_doc_fixes: make_html_docs: moved deglobbing code into separate function
14:10 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/022e2174a8
14:10 dalek parrot/dafrito_doc_fixes: ee7c4e3 | (Aaron Faanes)++ | / (2 files):
14:10 dalek parrot/dafrito_doc_fixes: make_html_docs: resources are now copied to $target_dir
14:10 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/ee7c4e30d1
14:10 dalek parrot/dafrito_doc_fixes: 1a0ab88 | (Aaron Faanes)++ | lib/Parrot/Docs/PodToHtml.pm:
14:10 dalek parrot/dafrito_doc_fixes: PodToHtml: generate a title from the filename if one isn't given
14:11 dalek parrot/dafrito_doc_fixes:
14:11 dalek parrot/dafrito_doc_fixes: We depend on a title being present when we list it in index files,
14:11 dalek parrot/dafrito_doc_fixes: otherwise the file shows up as the empy string. This generation code
14:11 dalek parrot/dafrito_doc_fixes: isn't meant to be perfect; it just provides a more useful default than
14:11 dalek parrot/dafrito_doc_fixes: 'untitled' or ''.
14:11 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/1a0ab887d7
14:11 whiteknight :) it's a good thing to be sorry about
14:11 dalek parrot/dafrito_doc_fixes: c9b3ea4 | (Aaron Faanes)++ | docs/index/pct_tutorial.json:
14:11 dalek parrot/dafrito_doc_fixes: Removed underscore from 'PCT_Tutorial' title
14:11 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/c9b3ea41c1
14:11 dalek parrot/dafrito_doc_fixes: 6780a31 | (Aaron Faanes)++ | docs/project/release_manager_guide.pod:
14:11 dalek parrot/dafrito_doc_fixes: release_manager_guide: decapitalize title
14:11 dalek parrot/dafrito_doc_fixes:
14:11 dalek parrot/dafrito_doc_fixes: The pod2html generation doesn't recognize all-caps heads as titles, so
14:11 dalek parrot/dafrito_doc_fixes: this document disappeared from the index page, and appeared as untitled
14:11 dalek parrot/dafrito_doc_fixes: everywhere else. Plus, the other Parrot guides aren't capitalized
14:11 dalek parrot/dafrito_doc_fixes: either, so it's also a bit more consistent.
14:11 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/6780a31e8e
14:11 dalek parrot/dafrito_doc_fixes: b95189d | (Aaron Faanes)++ | examples/languages/squaak/d​oc/tutorial_episode_1.pod:
14:11 dalek parrot/dafrito_doc_fixes: Renamed ep1 to exclude 'PCT Tutorial'
14:11 dalek parrot/dafrito_doc_fixes:
14:11 dalek parrot/dafrito_doc_fixes: This already included in the breadcrumb and other links that refer to
14:11 dalek parrot/dafrito_doc_fixes: this tutorial, so I figure it can go.
14:11 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/b95189dcf2
14:11 dalek parrot/dafrito_doc_fixes: 867336d | (Aaron Faanes)++ | / (4 files):
14:11 dalek parrot/dafrito_doc_fixes: pct_tut - ep2: add image, reworded surrounding paragraphs for clarity
14:11 dalek parrot/dafrito_doc_fixes:
14:11 dalek parrot/dafrito_doc_fixes: Minor rephrasing, just so the image flows better with the surrounding
14:11 dalek parrot/dafrito_doc_fixes: content.
14:11 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/867336d08f
14:11 whiteknight dafrito: In your next commit, add an entry for yourself in CREDITS
14:11 whiteknight so you get proper attribution
14:11 dafrito whiteknight, I didn't anticipate more doc fixes so soon, but I wanted to get the image stuff in. If I had known, it would've just been one pull request
14:11 dafrito whiteknight, will do :)
14:12 whiteknight no big deal. I'm only joking. We like pull requests :)
14:12 whiteknight I pulled this one into a branch, so the perl guys can test out the pod2html stuff
14:12 whiteknight I'm not a perl guy, so my eyes go all cross-eyed
14:14 whiteknight msg kid51 when you get a spare moment can you take a look at the pod2html changes in dafrito_doc_fixes? Reviewing that is above my head.
14:14 aloha OK. I'll deliver the message.
14:59 JimmyZ joined #parrot
15:34 SHODAN joined #parrot
15:47 dalek rakudo/nom: b3a247b | Coke++ | t/spectest.data:
15:47 dalek rakudo/nom: passed some tests, update failure modes
15:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3a247beb1
15:54 PacoLinux_ joined #parrot
15:57 woosley joined #parrot
16:01 benabik o/
16:07 whiteknight joined #parrot
16:07 preflex joined #parrot
16:08 lucian_ joined #parrot
16:09 lucian_ joined #parrot
16:15 dukeleto ~~
16:17 dalek nqp: 1f94461 | jonathan++ | src/ModuleLoader.pm:
16:17 dalek nqp: Start to re-work module loading a bit in preparation for changing install approach.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/1f9446125c
16:17 dalek nqp: 7392f50 | jonathan++ | tools/build/Makefile.in:
16:17 dalek nqp: Sketch out how make install should probably look once he changes all work.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/7392f509dc
16:17 dalek nqp: c82c723 | jonathan++ | tools/build/Makefile.in:
16:17 dalek nqp: Need NQP_LANG_DIR defined, of course.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/c82c723f6a
16:17 dalek nqp: 2ae55b1 | jonathan++ | tools/build/Makefile.in:
16:17 dalek nqp: PAST library still needs to go in Parrot library directory.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/2ae55b15ae
16:17 dalek nqp: 314b2df | jonathan++ | src/ModuleLoader.pm:
16:17 dalek nqp: Remove debugging output.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/314b2df6c4
16:17 dalek nqp: 2bd6964 | jonathan++ | src/ModuleLoader.pm:
16:17 dalek nqp: Unbust build after make install has been run. Essentially, the updated module loader dropped any --library far too eagerly - we use it for the bootstrapping rounds, so it needs careful attention.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/2bd6964188
16:17 dalek nqp: 06b6cfc | jonathan++ | src/stage0/ (7 files):
16:17 dalek nqp: Update bootstrap with updated module laoder; all seems well.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/06b6cfc957
16:20 dalek rakudo/nom: 9bec8df | jonathan++ | tools/build/Makefile.in:
16:20 dalek rakudo/nom: Start getting the install target more in shape - certainly not finished yet, and relies on NQP updates.
16:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9bec8dff93
16:20 dalek rakudo/nom: b4c471b | jonathan++ | tools/build/NQP_REVISION:
16:20 dalek rakudo/nom: Get NQP installation and module loading improvements. With this, we now have a 'make install' that installs a Rakudo that will start up, though the setting and module installation is still to do. Nuking your install directory is recommended.
16:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b4c471b440
16:28 dalek Heuristic branch merge: pushed 74 commits to parrot/whiteknight/tt_1910 by Whiteknight
16:29 dalek Heuristic branch merge: pushed 67 commits to parrot/whiteknight/frontend_parrot2 by Whiteknight
16:40 cotto ~~
16:40 kid51 joined #parrot
16:43 dukeleto is TreeUnit complete vaporware ? http://trac.parrot.org/parrot/wiki/TreeUnit
16:44 dalek rakudo/nom: 66e0e4e | kboga++ | src/core/Match.pm:
16:44 dalek rakudo/nom: add Numeric method for Match objects
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/66e0e4e16b
16:44 dalek rakudo/nom: 6d7af58 | (Carl Mäsak)++ | src/core/Match.pm:
16:44 dalek rakudo/nom: Merge pull request #34 from kboga/match-numeric
16:44 dalek rakudo/nom:
16:44 dalek rakudo/nom: Match numeric
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6d7af5833f
16:45 dalek TT #2173 created by dukeleto++: parrot_debugger --help coredumps
16:45 dalek TT #2173: http://trac.parrot.org/parrot/ticket/2173
16:45 SHODAN joined #parrot
16:56 dalek parrot/nqp_pct: 9302f38 | benabik++ | compilers/pct/src/PCT/HLLCompiler.pir:
16:56 dalek parrot/nqp_pct: Tabs -> spaces in PCT::HLLCompiler
16:56 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/9302f38580
16:57 kid51 dafrito ping
16:57 kid51 whiteknight ping
16:59 dafrito kid51, pong
16:59 kid51 whiteknight asked me to review parts of dafrito_doc_fixes branch.
17:00 kid51 How do you want me to transmit review? email? nopaste? parrot-dev?
17:02 dafrito kid51, unknown what whiteknight preferred; as for me, email or parrot-dev is most convenient
17:03 dafrito I'm not too familiar with perl, so my modifications to the script might be suspect
17:04 dafrito and I modified bits of your excellent PCT tutorial
17:10 kid51 email sent; have to leave, be back tonight
17:15 dukeleto msg kid51 commenting on the github pull request is the preferred review method
17:15 aloha OK. I'll deliver the message.
17:16 dukeleto dafrito: what else are you hacking on now?
17:17 dafrito dukeleto, I'm applying the changes from his review
17:18 dukeleto dafrito: where is the review?
17:19 dafrito which is stuff in PodToHtml and the make_html_docs script - he emailed it to me and whiteknight
17:19 dafrito want me to c/p it to the pull request?
17:20 dafrito dukeleto, here it is: https://files.dafrito.com/d​afrito_doc_fixes.review.txt
17:23 dalek rakudo/nom: 033e420 | pmichaud++ | src/core/metaops.pm:
17:23 dalek rakudo/nom: Initial version of hyper metaop.  Mostly works -- doesn't support hyperop on hashes yet.
17:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/033e420297
17:36 dukeleto dalek: i disagree with his last review comment. I would leave the use File::Basename import alone
17:36 dukeleto dafrito: ^^^
17:36 whiteknight dukeleto: I already pulled the request, into the branch
17:37 dukeleto dafrito: i think if you just add a tiny bit of docs for the canonicalize function, it is ready to be pulled in
17:37 dukeleto whiteknight: i find that pulling pull requests into a branch makes things confusing. Then the tools/dev/merge_pull_request.pl script can't be used
17:38 whiteknight Having a branch from a non-contributor is more confusing than any branch made by a normal contributor?
17:38 dukeleto whiteknight: now we have an open pull request ( https://github.com/parrot/parrot/pull/146 ) with no mention of which branch you put it on
17:39 dukeleto whiteknight: it is confusing to have open pull requests that are in a branch but no mention of it
17:39 whiteknight oh, the pull request is still open? I thought it would close
17:39 whiteknight I'll wrap that up
17:39 dukeleto whiteknight++
17:40 dukeleto whiteknight: in the future, i think having the review comments on the actual pull request is better, so all parrot contributors can see them
17:40 dukeleto whiteknight: instead of kid51 emailing it
17:41 whiteknight I think I would prefer something more standard and unified. When we need a branch reviewed normally, we don't open a pull request for it
17:41 whiteknight merging a feature set into master should be done a similar way no matter who is writing it
17:42 whiteknight I mean, pull requests are nice, but they're hardly standard
17:43 dukeleto whiteknight: yeah, my opinion is that our current "method" of reviewing branches is pretty erratic and non-standard. I am of the opinion that we should use pull requests
17:43 cotto whiteknight, standard to whom?
17:43 whiteknight cotto: Standard, as in its the same process for all merge reviews
17:44 dukeleto pull requests allow all parrot developers to comment on something and organizes all those comments directly on the code they are about
17:44 dukeleto instead of having a branch here, and email there, an irc conversation there, which are all disjoint and hard to search/read/understand
17:44 cotto I'd like to see us standardize on pull requests, though it'd need discussion at a #ps
17:45 dukeleto cotto: +1 to that
17:45 whiteknight for instance, I sent out an email today about reviewing the whiteknight/imcc_tag, and that review is clearly not going to happen through a pull request
17:45 ambs joined #parrot
17:46 whiteknight so if we're going to do pull requests, the standard place to be doing development would be in forks, not branches
17:47 cotto whiteknight, not necessarily.  You can send a pull request for a branch.
17:48 whiteknight oh wait, I just saw that feature
17:48 whiteknight okay, let me do
17:48 cotto which is great.  Going from branches to forks would be a non-starter.
17:48 cotto (exclusively)
17:48 whiteknight I've thought about doing more of my development in a fork, to avoid the need to prefix all my branches with whiteknight/
17:49 dukeleto whiteknight: i don't think that is necessary
17:49 dukeleto whiteknight: you don't need to prefix branches with your nick, it is just a convention, which we can change if you think that is necessary
17:50 dukeleto whiteknight: for instance, the m0-* branches don't have a nick/ prefix, because no single dev "owns" those branches
17:50 dukeleto whiteknight: the way i see it, username/foo says "talk to username before hacking on this branch"
17:50 dukeleto whiteknight: feel free to not use the username/ prefix
17:52 whiteknight bleh, we do need some kind of organization. We have like 70 branches right now
17:52 whiteknight some of which really do need to be culled
17:54 dukeleto whiteknight: yes
17:54 whiteknight having more people do at least early development in forks would help decrease this strain
17:55 whiteknight not that it's a huge amount of strain, but searching branches on github is obnoxious
17:55 dukeleto whiteknight: some are historical branches that will never be merged. I have thought previously that we could create a parrot-museum repo, which contains those historical branches, and then we can remove them from parrot.git
17:55 whiteknight I like that idea, in theory
17:55 dukeleto whiteknight: the first step in doing that is identifying branches we never intend to merge. That info isn't written down anywhere
17:56 whiteknight Anything that hasn't been touched in a year or longer would seem like good candidates
17:56 dukeleto whiteknight: but a good rule of thumb is: if it is older than 6 months old, it has very little chance of being merged, unless it is a trivial doc change that was forgotten or something like that
17:56 cotto dukeleto, are the smoke-me branches deletable?
17:56 dukeleto cotto: yep
17:58 cotto two down
18:00 dalek Heuristic branch merge: pushed 1500 commits to parrot/whiteknight/eh_subclass by Whiteknight
18:01 whiteknight I'm getting all the branches I intend to work on updated to master
18:01 PacoLinux_ joined #parrot
18:02 cotto whiteknight++
18:02 cotto github++'s branch list will make this much easier
18:03 dukeleto also, everyone should know about git branch --no-merged
18:03 dukeleto it shows branches which are not merged to HEAD, so if you are on master, it shows branches not merged into master
18:03 cotto dukeleto, what does that do?
18:03 dukeleto git branch -r --no-merged shows remote branches not merged into master
18:04 dukeleto without -r, it only shows local branches not merged into master
18:07 dalek parrot: 95160c0 | dukeleto++ | docs/project/git_workflow.pod:
18:07 dalek parrot: [doc] How to find unmerged branches
18:07 dalek parrot: review: https://github.com/parrot/parrot/commit/95160c08e4
18:22 woosley left #parrot
18:26 dafrito dukeleto, should I reissue my pull request for my revised branch?
18:26 dafrito I guess anyone can answer that, actually ;)
18:27 darbelo joined #parrot
18:36 mj41 joined #parrot
18:40 whiteknight dafrito: sure, that would be easiest, I think
18:51 dafrito whiteknight, done, thanks :)
18:56 whiteknight dafrito++
19:19 * dukeleto revies whiteknight's pull request
19:19 dukeleto reviews, even
19:19 whiteknight first of many to come
19:19 dalek parrot/whiteknight/tt_1910: 796e991 | Whiteknight++ | / (7 files):
19:19 dalek parrot/whiteknight/tt_1910: Move remaining functions out of embed.c. move packfile-related functions to src/packfile/api.c. Move disassembly-related functions into a new disassemble.c
19:19 dalek parrot/whiteknight/tt_1910: review: https://github.com/parrot/parrot/commit/796e991ab3
19:19 dalek parrot/whiteknight/tt_1910: 1cb5265 | Whiteknight++ | / (2 files):
19:19 dalek parrot/whiteknight/tt_1910: Remove unused, empty embed.* files
19:19 dalek parrot/whiteknight/tt_1910: review: https://github.com/parrot/parrot/commit/1cb52653cc
19:19 dalek parrot/whiteknight/tt_1910: c989e15 | Whiteknight++ | / (42 files):
19:19 dalek parrot/whiteknight/tt_1910: Remove embed.h (and all traces of it) and embed.c. Get things building again
19:19 dalek parrot/whiteknight/tt_1910: review: https://github.com/parrot/parrot/commit/c989e15304
19:20 whiteknight I don't want it pulled yet, I mostly just want review
19:20 whiteknight and I can do the pulling myself, obviously, once it's been reviewed
19:26 dukeleto whiteknight: forgive me if some of my pull request questions are dumb. I am merely a novice when it comes to IMCC stuff
19:26 whiteknight it's okay. I'm going to answer them as soon as firefox un-craps itself and loads the page
19:26 whiteknight that's a technical term
19:29 whiteknight I *really* wish there were a way to tell github to ignore compilers/imcc/imcparser.c and compilers/imcc/imclexer.c in diffs
19:29 whiteknight or any generated file, really
19:29 lucian whiteknight: i think the solution is to just not put them under version control
19:30 whiteknight lucian: I'm not entirely against that approach, but it would add flex and bison as prereqs for all parrot developers and anybody building it from source
19:30 lucian and if it's convenient to have them there, they could be added back in as git submodules
19:30 whiteknight and that's onerous on windows, etc
19:33 dukeleto whiteknight: i recently upgraded to Firefox 5 and I was amazed at the speed improvement and hated myself for waiting so long
19:33 dukeleto whiteknight: i use a ton of add-ons and they all still work in FF5
19:33 lucian dukeleto: sadly, not on arm. or maybe i have an old ff?
19:34 dukeleto i think there may be a way to tell github to ignore diffs of certain files
19:34 lucian oh yeah. i have 3.6 ...
19:34 dukeleto lucian: 3.6 is a slug
19:34 lucian dukeleto: yeah, but it's what maverick comes with
19:34 lucian and no ppas for arm
19:35 dukeleto lucian: what "arm" machine do you have?
19:35 lucian dukeleto: efika mx netbook
19:36 cotto dukeleto, any thoughts on https://github.com/parrot/parr​ot/compare/master...gci_tt1199 ?  It looks like one of the gci tasks that fell through the cracks.
19:37 dukeleto whiteknight: ok, i am done adding dumb questions to your pull request
19:38 dukeleto cotto: i vaguely remember something about making it optional/having a flag for that and having some documentation for it
19:38 lucian dukeleto: Freescale i.MX515 (ARM Cortex-A8 800MHz) http://www.genesi-usa.com/products/smartbook
19:40 dalek parrot/dafrito_doc_fixes: d577fbb | (Aaron Faanes)++ | examples/languages/squaak/d​oc/tutorial_episode_4.pod:
19:40 dalek parrot/dafrito_doc_fixes: pct_tut - ep4: added a few newlines
19:40 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/d577fbbe9c
19:40 dalek parrot/dafrito_doc_fixes: 81f4bd8 | (Aaron Faanes)++ | lib/Parrot/Docs/PodToHtml.pm:
19:40 dalek parrot/dafrito_doc_fixes: PodToHtml: Documented the title-generation code
19:40 dalek parrot/dafrito_doc_fixes:
19:40 dalek parrot/dafrito_doc_fixes: A real-world example of this code in action would have been the commit
19:40 dalek parrot/dafrito_doc_fixes: 6780a31e8e5 where "RELEASE MANAGER GUIDE" was not recognized.
19:40 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/81f4bd8741
19:40 dalek parrot/dafrito_doc_fixes: a822e17 | (Aaron Faanes)++ | tools/docs/make_html_docs.pl:
19:40 dalek parrot/dafrito_doc_fixes: make_html_docs: move both functions beneath exec'd code
19:40 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/a822e17d54
19:40 dalek parrot/dafrito_doc_fixes: e0ba9b3 | (Aaron Faanes)++ | tools/docs/make_html_docs.pl:
19:40 dalek parrot/dafrito_doc_fixes: make_html_docs: Lots more doc, explained JSON syntax/process
19:40 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/e0ba9b34c1
19:40 dalek parrot/dafrito_doc_fixes: b13e39d | (Aaron Faanes)++ | CREDITS:
19:40 dalek parrot/dafrito_doc_fixes: Add dafrito to CREDITS
19:40 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/b13e39d24f
19:40 dalek parrot/dafrito_doc_fixes: 87c40ab | dukeleto++ | / (4 files):
19:40 dalek parrot/dafrito_doc_fixes: Merge pull request #148 from dafrito/doc_fixes
19:40 dalek parrot/dafrito_doc_fixes:
19:40 dalek parrot/dafrito_doc_fixes: Revised doc fixes
19:40 dalek parrot/dafrito_doc_fixes: review: https://github.com/parrot/parrot/commit/87c40abd70
19:40 dukeleto good lord
19:41 dukeleto lucian: compiling from source is always fun ... :)
19:41 lucian dukeleto: sure, except when it takes forever :)
19:42 lucian even parrot takes very long to build here
19:42 dukeleto incoming
19:42 dukeleto lucian: yeah, i can imagine
19:42 dalek parrot: a822e17 | dafrito++ | tools/docs/make_html_docs.pl:
19:42 dalek parrot: make_html_docs: move both functions beneath exec'd code
19:42 dalek parrot: review: https://github.com/parrot/parrot/commit/a822e17d54
19:42 dalek parrot: e0ba9b3 | dafrito++ | tools/docs/make_html_docs.pl:
19:42 dalek parrot: make_html_docs: Lots more doc, explained JSON syntax/process
19:42 dalek parrot: review: https://github.com/parrot/parrot/commit/e0ba9b34c1
19:42 dalek parrot: b13e39d | dafrito++ | CREDITS:
19:42 dalek parrot: Add dafrito to CREDITS
19:42 dalek parrot: review: https://github.com/parrot/parrot/commit/b13e39d24f
19:42 dalek parrot: 87c40ab | dukeleto++ | / (4 files):
19:42 dalek parrot: Merge pull request #148 from dafrito/doc_fixes
19:42 dalek parrot:
19:42 dalek parrot: Revised doc fixes
19:42 dalek parrot: review: https://github.com/parrot/parrot/commit/87c40abd70
19:42 dalek parrot: c059a67 | dukeleto++ | / (11 files):
19:42 dalek parrot: Merge branch 'dafrito_doc_fixes'
19:42 dalek parrot: review: https://github.com/parrot/parrot/commit/c059a6775a
19:43 dukeleto dafrito: keep the good commits comin' :)
19:43 whiteknight dafrito++
19:44 cotto whiteknight, what'd be the implications of reusing the old syntax once :init and :load behave the same as :tag("init") and :tag("load")?
19:45 whiteknight cotto: internally they will be the same, eventually, so I guess it doesn't matter to me if we continue to call them ":init" and ":load"
19:45 whiteknight the important part is cleaning up the fugly logic with the sub pmc flag bits
19:46 dukeleto whiteknight++ # defuglification
19:46 whiteknight I'm going to change my job from "product manager" to "master defuglifyer"
19:46 whiteknight or, defuglification team leader
19:50 dukeleto whiteknight: i approve
19:58 cotto whiteknight, I like the idea of reusing the existing syntax and typing less.
20:00 dalek rakudo/nom: f1de2a8 | jonathan++ | src/Perl6/ModuleLoader.pm:
20:00 dalek rakudo/nom: Start to flesh out module loading a bit; make it pay attention to @*INC at least, and even failing that (due to no setting loaded yet) at least check installed locations.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1de2a85ea
20:00 dalek rakudo/nom: e37f879 | jonathan++ | tools/build/Makefile.in:
20:00 dalek rakudo/nom: Install CORE.setting.pbc, so we now at least find this when running from an installed version. Not quite there yet - we struggle with loading the module loader.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e37f879703
20:00 dalek rakudo/nom: 1119188 | jonathan++ | src/Perl6/SymbolTable.pm:
20:00 cotto That's just preference though.  Cleaning up the guts is the important part.
20:00 dalek rakudo/nom: Make sure we can locate the Perl 6 module loader from the installation.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1119188196
20:00 dalek rakudo/nom: e48d487 | jonathan++ | src/Perl6/ModuleLoader.pm:
20:00 dalek rakudo/nom: Quick cheat for loading NQP::Metamodel in the setting; will un-cheat it in forthcoming modules work.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e48d487886
20:00 dalek rakudo/nom: d70d16a | jonathan++ | NOMMAP.markdown:
20:00 dalek rakudo/nom: nom is now installable; update nommap. Again, nuking your current install directory is recommended if you didn't already do so with the NQP upgrade.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d70d16a16e
20:04 dalek winxed: da32bbb | NotFound++ | winxedst1.winxed:
20:04 dalek winxed: if something looks like a method call but can't be resolved at compile time
20:04 dalek winxed: assume is function in a namespace not declared in the current compilation
20:04 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/da32bbb335
20:24 whiteknight cotto: You can't think about it in terms of characters typed. Eventually, nobody will be writing PIR code anymore
20:25 cotto whiteknight, I'll be throwing a party.
20:25 cotto It'll have a cake that doesn't have PIR written on it.
20:26 cotto for the time being, there'll be a lot of hand-written and generated PIR that uses tags, and I'd like it to be as readable as possible
20:26 dukeleto cotto: so where do we stand with respect to Mole ?
20:27 cotto dukeleto, nothing more than is in https://github.com/cotto/mole
20:27 dukeleto cotto: i hadn't even seen that repo yet
20:28 cotto dukeleto, it's just a conversion of the gist I'd been using.
20:28 dukeleto cotto: i like it in repo form. are you still maitaining an m0 gist? I feel like it would be more visible if it was in one of the m0 branches
20:29 cotto dukeleto, what do you mean "m0 gist"?  My todo list is still in gist form.
20:29 cotto aloha, m0 todo?
20:29 aloha cotto: m0 todo is https://gist.github.com/1019986
20:30 dukeleto cotto: yeah, that is what I mean. For instance, I can only comment on that gist, not edit it. But perhaps that is what you want
20:30 dukeleto cotto: maybe that should be a document in the m0-spec branch?
20:31 cotto dukeleto, I'll make it into a repo
20:31 * cotto wishes for a "promote gist to full repo" button
20:31 dukeleto cotto: sure. As long as it is easy for parrot devs to help update it, unless you mean it to be a personal todo list
20:31 dukeleto cotto: ooh, that would be shiny
20:31 dukeleto cotto: i know i haven't been hacking on m0 lately, but I have definitely been thinking about it
20:32 cotto dukeleto, it's currently personal, but there's no reason for it to stay that way
20:32 awwaiid joined #parrot
20:33 dukeleto cotto: i am very heavily considering writing an abstract for an M0 talk at that VMIL workshop
20:33 dukeleto cotto: seemingly, m0 is exactly the kind of stuff that workshop is about
20:33 dukeleto cotto: except it is all a bunch of theoreticians and we are actually slamming our feet on the virtual metal
20:35 dukeleto cotto: mostly, i want to talk about m0 there to learn things that are useful for the evolution of m0. Hopefully i will give a talk and then someone will say "oh you should read paper such-and-such that says x-and-y"
20:35 dukeleto cotto: and perhaps get a few other smart folks involved in actually building something instead of just talking about it
20:35 cotto dukeleto, I'm very much hoping to come back with a pile of awesome papers to read through.
20:35 cotto dukeleto, that too
20:36 dukeleto cotto: are you going to submit something?
20:36 dukeleto cotto: also, would you consider putting the mole.git repo under the parrot org? I think that will encourage more people to be involved. It's up to you, of course.
20:37 dukeleto cotto: also, we may need some kind of Mole logo that involved a mole attacking a Go gopher
20:37 dukeleto s/involved/involves/
20:37 cotto dukeleto, I'm trying to find the button to create a new parrot org repo.
20:38 cotto dukeleto, I'm not sure how I'd form a talk for that audience.
20:38 cotto dukeleto++
20:39 mj41 joined #parrot
20:39 dukeleto cotto: go to your Github dashboard
20:39 dukeleto cotto: switch over to the "parrot" context at the upper right
20:40 dukeleto cotto: then click on the "create a new repo" button
20:40 dukeleto cotto: "New Repository" button, rather
20:40 cotto dukeleto, mole is transferred to parrot
20:40 dukeleto wooooot
20:40 contingencyplan joined #parrot
20:42 cotto dukeleto, m0 todo list is now under the parrot org
20:43 cotto aloha, no m0 todo is https://github.com/parrot/M0-todo
20:43 aloha cotto: Okay.
20:43 cotto aloha, m0 todo
20:43 cotto aloha, m0 todo?
20:43 aloha cotto: m0 todo is https://github.com/parrot/M0-todo
20:50 tadzik hrm, I'm unable to install parrot. I ran Configure.pl with --prefix=./install, and now ./parrot gives me ./parrot: error while loading shared libraries: libparrot.so.3.6.0: cannot open shared object file: No such file or directory
20:50 dukeleto tadzik: i always give --prefix a full path
20:50 dukeleto tadzik: i am not sure it works with relative paths
20:51 cotto dukeleto, if it doesn't, we should make it fail earlier
20:51 dukeleto tadzik: also, it would be ./install/parrot
20:51 dukeleto cotto: yes, but I am not sure if that is the problem
20:51 tadzik okay
20:51 NotFound I usually use use /home/me/runparrot
20:52 dukeleto tadzik: this is the script I use to compile a new parrot https://github.com/leto/Util​/blob/master/bin/new_parrot
20:53 tadzik okay, absolute path works, thanks
20:53 cotto tadzik, can you file a ticket?
20:54 darbelo joined #parrot
20:54 tadzik cotto: sure
20:54 tadzik maybe I can fix a ticket
20:55 NotFound Even better.
20:56 cotto tadzik++
20:57 tadzik wouldn't that be just expanding the path properly in Configure.pl?
20:57 cotto aloha, no m0 todo is https://github.com/parrot/m0_todo
20:57 aloha cotto: Okay.
20:58 NotFound I've bought a book about java. It was time, the only one I had was "Core Java" (C) 1996 Sun Microsystems, Inc.
20:58 soh_cah_toa joined #parrot
20:58 cotto soh_cah_toa, ohai.
20:58 NotFound Maybe it's a valuable collector item.
20:58 soh_cah_toa cotto: hey
20:58 cotto NotFound, sounds like a good source of lulz
20:59 cotto soh_cah_toa, it's nice to see an optimistic blog post from you.
20:59 soh_cah_toa yeah, i know. finally
21:00 cotto none too soon either
21:02 soh_cah_toa so was i close about pc and interp->code->base.data? what do those to values represent? my guess was that the latter was the current offset into the bytecode segment but i don't know about pc
21:05 tadzik eh, who knows something about Parrot's Configure.pl system?
21:08 dukeleto tadzik: i might
21:09 dukeleto soh_cah_toa: pc is the program counter, i.e. the current value of the index into the bytecode
21:10 soh_cah_toa it can point to any place/segment in the bytecode? not necessarily an actual opcode?
21:10 cotto soh_cah_toa, *pc is the offset of the currently-executing instruction based on the current op map
21:10 tadzik dukeleto: what is the best place to stick the relative path expansion? I could do it in process_args() or _initial_pass(), but maybe there's a better place for that
21:11 soh_cah_toa offset from the beginning of the packfile?
21:11 cotto *ps will generally be a small integer between 0 and 50 or so, depending on how many different ops are mapped
21:11 cotto *pc
21:11 soh_cah_toa well, actually pc is usually a really big number
21:11 cotto *pc isn't though
21:11 soh_cah_toa about 9 digits long
21:11 cotto pc is a memory address
21:11 soh_cah_toa ok
21:12 cotto *pc is what's in it
21:12 soh_cah_toa well yeah
21:12 soh_cah_toa and then what about interp->code->base.data?
21:12 dukeleto tadzik: what currently happens when you pass in a non-absolute path ? does it put stuff in the wrong place? blow up? do nothing at all?
21:13 tadzik dukeleto: it installs it well, but it cannot find the libparrot.so.3.6.0
21:13 tadzik (the installed parrot)
21:14 cotto soh_cah_toa, that's a pointer to the start of the ops within the bytecode segment
21:15 soh_cah_toa ok
21:15 cotto soh_cah_toa, what's your plan between now and the pencils down date in a couple weeks?
21:16 cotto and do you want me to help you figure it out?
21:16 soh_cah_toa i don't really have one
21:16 soh_cah_toa yeah, that'd be nice
21:16 cotto soh_cah_toa, did you see http://trac.parrot.org/parrot/wiki/HBDBPlanning ?
21:17 dukeleto tadzik: i would create a separate function which checks if $prefix starts with a / , and if not, prepends $PWD to it. But that will only work on unixy systems
21:17 tadzik oh, true
21:17 soh_cah_toa i'll look now
21:17 tadzik well, that was my guess too, I was just looking for a good place to put it in
21:17 tadzik but yeah, it'd probably fail for windowses
21:17 dukeleto tadzik: also, make a branch for this, and then ask kid51++ to review. He is the person who understands Configure.pl the best
21:17 tadzik okay
21:18 tadzik so, _initial_pass is the place then?
21:19 cotto soh_cah_toa, I'm editing atm, so hold off if you want to make changes
21:21 darbelo_ joined #parrot
21:21 dukeleto tadzik: do whatever you think is best and push it to a branch. Not really sure.
21:22 tadzik dukeleto: it's just https://gist.github.com/1129758 testing it now
21:23 NotFound I don't like the idea of risking my --prefix to be silently replaced. I think it will be better to fail with a clear error message.
21:24 tadzik well, it's the same prefix
21:24 NotFound Same as what?
21:25 tadzik same as supplied
21:26 tadzik it it doesn't start with a /, it's the same as prefixed with ./, which is $PWD/
21:26 tadzik s/it/if/
21:27 NotFound Is not the same. This conversation started because it failed.
21:27 NotFound If you make it not fail for the wrong reasons, I hardly see an improvement.
21:27 dalek tracwiki: v4 | cotto++ | HBDBPlanning
21:27 dalek tracwiki: start breaking timeline down into discrete features
21:27 dalek tracwiki: http://trac.parrot.org/parrot/wiki/HB​DBPlanning?version=4&amp;action=diff
21:29 cotto soh_cah_toa, there's the first step.  I've tried to break everything you mentioned down into a bunch of features.  Could you look at the last few items and add those to the feature list?
21:29 cotto soh_cah_toa, I wasn't sure what you meant by them.
21:29 NotFound And we'll need platform dependent variants of that checks, because of a misfeature.
21:30 dalek mole: 403d881 | dukeleto++ | / (3 files):
21:30 dalek mole: Add a Mole readme
21:30 dalek mole: review: https://github.com/parrot/mole/commit/403d8810c5
21:32 NotFound If someone wants a Configure assistant/wizard/whatever please wiite it as an idependant program and invoke plain Configure from it.
21:32 soh_cah_toa cotto: what last few items?
21:33 cotto soh_cah_toa, refresh the page.  I'm referring to all the items at the bottom of the page.
21:33 dukeleto tadzik: perhaps we should just die at Configure time if a non-absolute path is passed in. But even *deciding* what is an absolute path in a cross-platform way is not trivial, which is why this bug probably exists
21:33 soh_cah_toa ah, there. it wasn't going before
21:33 cotto soh_cah_toa, also, I'm done editing.
21:33 dukeleto tadzik: in any case, getting kid51++'s opinion will be valuable
21:33 cotto (for now)
21:33 tadzik from my viewpoint, if Configure silently fails with a relative path, that's a brokeness. If it worked, that'd be just fine. If it just cried that it's a relative path, I'd get mad for it not to correct it itself
21:34 tadzik just my 1€
21:34 dukeleto cotto: please read through the new mole readme and make sure I am not bullshitting
21:34 cotto soh_cah_toa, also make sure all the features make sense to you, and edit them if they don't
21:34 cotto dukeleto, ok
21:34 dukeleto tadzik: crying on relative paths is at least better than silently failing. I agree with you that it should know how to deal with relative paths
21:34 NotFound Configure is not a final user tool that should be friendly. We should balance its friendliness against other aspects.
21:35 dukeleto tadzik: but for instance, if you use ~ in --prefix, that will fail too. It is a long, dark, smelly yak hole.
21:35 tadzik true
21:35 dukeleto tadzik: we do need to explicitly state what --prefix expects and what it doesn't
21:36 cotto dukeleto++
21:36 soh_cah_toa cotto: well, i was just gonna mention that. i think most of this is still probably possible but i'm really gonna need your help
21:36 cotto dukeleto, looks good
21:36 cotto soh_cah_toa, that's why I'm here
21:37 cotto soh_cah_toa, let me know when you're done with the list
21:37 tadzik > perl Configure.pl --prefix=install/parrot --optimize
21:37 tadzik Relative path given to --prefix, please pass an absolute path
21:37 cotto tadzik, will that also work correctly on windows?
21:37 cotto tadzik++ btw
21:38 tadzik for windows I should probably check for ^\\ rather than ^/, dunno
21:38 cotto tadzik, make sure it gets some windows love before it gets merged
21:38 NotFound --prefix=D:\\whatever
21:38 tadzik okay, it's trickier on windows
21:38 cotto but +1 when that happens
21:39 NotFound --prefix=//somenetshare/parrot
21:39 tadzik pushing to a branch
21:39 tadzik heh, I just ran 'rm -rf ./~', was scared for a moment :)
21:41 darbelo_ tadzik: How about --prefix=~/some/dir/ ?
21:41 dalek parrot/tadzik/whine-on-relative-prefix: 6a21cee | tadzik++ | lib/Parrot/Configure/Options.pm:
21:41 dalek parrot/tadzik/whine-on-relative-prefix: Cry when Configure.pl is given a relative path. Probably works for Unixes only
21:41 tadzik darbelo_: that'd break
21:41 dalek parrot/tadzik/whine-on-relative-prefix: review: https://github.com/parrot/parrot/commit/6a21ceed8e
21:41 dukeleto darbelo_: ~ is not supported
21:42 darbelo_ It should be noted in the docs, people might expect it to work.
21:42 cotto why shouldn't it work?
21:43 NotFound ??? We should document any funny character that someone may think it will be treated in some special way?
21:43 dukeleto darbelo_: i expected it to work, but it didn't
21:43 dalek tracwiki: v5 | cotto++ | HBDBPlanning
21:43 dalek tracwiki: http://trac.parrot.org/parrot/wiki/HB​DBPlanning?version=5&amp;action=diff
21:43 cotto --prefix=%appdata%/parrot
21:44 darbelo_ ~/ is a valid, non-relative path on unixes.
21:44 Psyche^ joined #parrot
21:44 dukeleto cotto: "shouldn't" wasn't used. I would like for it to work, but when I said something about it, chromatic grumbled about supporting shell expansions across operating systems and no one else seemed to care about it at the time
21:44 tadzik glob would expand that
21:44 NotFound Guys, I think that teaching people how his shell works is not our job.
21:44 dukeleto darbelo_: yes, in a shell. But configure.pl doesn't do shell expansions.
21:45 NotFound Supporting shell expansions is the shell job.
21:45 dukeleto Aren't we glad that we don't support VMS?
21:46 tadzik msg kid51 could you take a look at tadzik/whine-on-relative-prefix in some spare time? kthx
21:46 aloha OK. I'll deliver the message.
21:46 tadzik aloha: thanks
21:46 darbelo_ dukeleto, NotFound: I'm agreeing, I just think a small note to the effects of 'We don't do no shell expansions' might be warranted.
21:46 NotFound I don't think we should document what we don't do.
21:47 cotto If there's an easy way someone wants to find, I'd like that.  If not, a warning is fine.
21:47 tadzik I think it's this sort of problem that has already been solved a thousand of times
21:47 NotFound The goal usually is to document what we do.
21:47 dukeleto darbelo_: i agree
21:47 dukeleto NotFound: sure. But making things user-friendly sometimes means saying "currently, this is not supported"
21:47 NotFound tadzik: yes, and most of the times wrongly.
21:48 dukeleto We don't need to say "we currently don't support PDP11's" but it would be nice to say we don't support things that some people might expect.
21:48 NotFound It will be a very long list.
21:49 dukeleto NotFound: we only add to the list when it bites somebody. Such as tadzik wondering why relative --prefix paths don't work.
21:49 NotFound Sounds like a FAQ, then.
21:49 tadzik and it happens to be a known issue, of which the insiders know about
21:50 NotFound I don't object to have a FAQ about the configure and build process.
21:51 cotto soh_cah_toa, you still there?
21:51 soh_cah_toa cotto: yeah
21:52 soh_cah_toa cotto: i'm done editing. i'll brb though
21:53 dalek rakudo/nom: 0c336ba | Coke++ | t/spectest.data:
21:53 dalek rakudo/nom: run more spectests, track failure modes
21:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0c336bae32
21:53 cotto soh_cah_toa, the next step is to split up that list.  I can think of a number of categories (though it looks like you've started already)
21:53 cotto 1) completed w/ tests  2) completed w/o tests 3) dependent on imcc cleanups 4) not dependent on imcc cleanups (possible to implement before pencils down) 5) not dependent on imcc cleanups (not possible to complete before pencils down)
21:54 cotto soh_cah_toa, I'd make 5 empty lists for those categories and move all features into one of those lists.
21:55 cotto soh_cah_toa, from there, we can figure out a plan that'll be the best use of your remaining GSoC time.
21:59 dalek tracwiki: v6 | soh_cah_toa++ | HBDBPlanning
21:59 dalek tracwiki: http://trac.parrot.org/parrot/wiki/HB​DBPlanning?version=6&amp;action=diff
21:59 dalek tracwiki: v7 | cotto++ | HBDBPlanning
21:59 dalek tracwiki: http://trac.parrot.org/parrot/wiki/HB​DBPlanning?version=7&amp;action=diff
22:00 dalek rakudo/nom: 397cf71 | tadzik++ | tools/build/Makefile.in:
22:00 dalek rakudo/nom: Install Pod/To/Text.pm along with Test.pm
22:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/397cf7114d
22:09 soh_cah_toa cotto: ok
22:20 contingencyplan joined #parrot
22:30 cotto soh_cah_toa, looks good.  Now let's figure out what you can get done during GSoC.  Tested features are much more valuable than untested features so if you're having trouble deciding, add more tests.
22:30 dalek tracwiki: v8 | soh_cah_toa++ | HBDBPlanning
22:30 dalek tracwiki: Started dividing features into separate groups.
22:30 dalek tracwiki: http://trac.parrot.org/parrot/wiki/HB​DBPlanning?version=8&amp;action=diff
22:31 cotto Documentation is important too.
22:32 cotto soh_cah_toa, how long do you think it'll take to write tests for the features that are implemented but not yet tested?
22:35 whiteknight soh_cah_toa: ping
22:36 cotto soh_cah_toa, my recommended goal for the end of gsoc would be to add tests for all implemented features and to add a couple of the non-imcc-dependent features like function breakpoints, printing registers and possibly register watchpoints.
22:37 PacoLinux_ joined #parrot
22:42 cotto soh_cah_toa, I need to go do some errands.  I'll be back later this evening.  In the meantime, please form what you think you can accomplish into a schedule on the HBDBPlanning wiki page.
22:46 PacoLinux__ joined #parrot
22:49 dalek rakudo/nom: 6d7cf62 | tadzik++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:49 dalek rakudo/nom: Fix Bool.get_bool vtable mapping, jnthn++
22:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6d7cf6261e
22:50 dalek parrot: 1f0d63c | jonathan++ | compilers/pct/src/PAST/Compiler.pir:
22:50 dalek parrot: Avoid deep-cloning symtable in PAST::Compiler.
22:50 dalek parrot: review: https://github.com/parrot/parrot/commit/1f0d63c3ee
22:56 soh_cah_toa sorry, i was eating dinner
22:56 soh_cah_toa whiteknight: pong
22:57 tadzik dinner, on 1AM? :P
22:57 soh_cah_toa :)
23:08 whiteknight soh_cah_toa: I might not have much more time tonight, but what time I do have tonight and tomorrow is all yours
23:08 whiteknight soh_cah_toa: so tell me what you need me to do, then get the heck out of my way
23:09 soh_cah_toa yay :)
23:09 soh_cah_toa hmmm...
23:09 kid51 joined #parrot
23:10 soh_cah_toa whiteknight: well, what would be the best way to test for current annotations in effect? if (interp->code->annotations)?
23:11 whiteknight let me look
23:11 soh_cah_toa ok
23:11 whiteknight src/packfile/api.c:PackFile_Annotations_lookup
23:11 whiteknight that function probably will be renamed, but that's what it is for now
23:12 kid51 msg tadzik Assuming we want to forbid relative paths for 'prefix' (and I don't have an authoritative opinion on that), here's a patch to your branch which you might want to consider.
23:12 aloha OK. I'll deliver the message.
23:12 soh_cah_toa yeah, i know. pretty ugly
23:12 soh_cah_toa that's what i used for the backtrace command. just making sure
23:12 tadzik I'm here
23:12 nopaste "kid51" at 192.168.1.3 pasted "patch to tadzik's branch about prefix" (54 lines) at http://nopaste.snit.ch/68289
23:13 kid51 patch uses prior art, but also adds a regression test
23:13 tadzik kid51: I was told to consult the move with you, whether and how to handle the relative path case (it's broken now)
23:13 tadzik kid51: the patch makes sense to me, might pushing that?
23:14 kid51 Sure.
23:14 kid51 I myself have always used an absolute path, so I never had occasion to see what happened with a relative path.
23:15 tadzik it gave me a bit of headscratching today
23:15 kid51 I think this is a case where it would be good to know what happens on Windows.
23:15 tadzik yes
23:15 kid51 See perldoc File::Spec for documentation of file_name_is_absolute (there are caveats)
23:15 soh_cah_toa whiteknight: now suppose i find an annotation for line 3. is there anywhere in the debug segment that contains the actual text of that line? if not, how else can i look that up?
23:16 tadzik This does not consult the local filesystem on Unix, Win32, OS/2, or Mac OS (Classic).
23:16 whiteknight soh_cah_toa: the text of that line in the original HLL?
23:16 PacoLinux_ joined #parrot
23:16 soh_cah_toa whiteknight: yeah
23:16 whiteknight no, I don't think that information exists anywhere, after being compiled
23:17 soh_cah_toa agh...
23:17 whiteknight unless the HLL explicitly stored that data somewhere, which I don't think any do
23:17 dalek parrot/tadzik/whine-on-relative-prefix: 56ea77d | jkeenan++ | / (2 files):
23:17 dalek parrot/tadzik/whine-on-relative-prefix: Let's try using a File::Spec function for testing for absoluteness.  Add a regression test for invalid value to '--prefix'.
23:17 dalek parrot/tadzik/whine-on-relative-prefix: review: https://github.com/parrot/parrot/commit/56ea77d927
23:17 whiteknight soh_cah_toa: Just print out the pir source for that annotation
23:17 whiteknight soh_cah_toa: we might need to build you a better function to return  list of all PIR lines with the same annotation
23:18 soh_cah_toa yeah
23:20 soh_cah_toa i would kind of like any below the hll level to be transparent to the user unless explicitly requested
23:20 soh_cah_toa *anything
23:24 whiteknight What we could try to do is get HLLs to have a "source" annotation with the text of the original line of code
23:24 whiteknight that certainly doesn't exist right now, but could be added
23:24 soh_cah_toa that would be badass
23:25 kid51 soh_cah_toa: Were all my codingstd cleanups in your branch safe?
23:26 whiteknight what does the -c arg to Parrot do?
23:26 soh_cah_toa kid51: yeah, there were a few merge conflicts when i merged my work on vacation but i fixed them
23:31 soh_cah_toa whiteknight: it looks like it means that the file is pbc. if you specify it w/ a .pir file, it throws an exception
23:31 soh_cah_toa whiteknight: it actually seems kind of unnecessary
23:33 dalek parrot/whiteknight/frontend_parrot2: 9a0516c | Whiteknight++ | frontend/parrot2/ (2 files):
23:33 dalek parrot/whiteknight/frontend_parrot2: Start changing the way we handle arguments. Split arguments into two arrays, one for system-related args and one for program-related args. Pass both arrays to prt0.pir, and start parsing some args from there (-o, -c, -r, -E)
23:33 dalek parrot/whiteknight/frontend_parrot2: review: https://github.com/parrot/parrot/commit/9a0516c79b
23:33 * kid51 looks at whiteknight/imcc_tag branch and thinks: IMCC is really in a different universe from the rest of Parrot
23:33 * whiteknight has to go buy his kid some icecream, will be back
23:33 kid51 branch PASS make test and make nocritic_codetest
23:34 soh_cah_toa kid51: indeed it is
23:34 kid51 All those ... numbers!
23:35 soh_cah_toa ha! i know. the code itself is not very readable either
23:40 soh_cah_toa whiteknight: when you get back, does the Sub PMC provide some way of retrieving the arguments passed to a subroutine? their type and/or value?
23:47 dalek nqp: ed093d3 | jonathan++ | tools/build/PARROT_REVISION:
23:47 dalek nqp: Bump PARROT_REVISION to get PAST::Compiler tweak.
23:47 dalek nqp: review: https://github.com/perl6/nqp/commit/ed093d3d19
23:47 dalek nqp: 265a34e | jonathan++ | src/pmc/sixmodelobject.pmc:
23:47 dalek nqp: Throw an exception if the clone vtable is called on a 6model object - it doesn't support it in any sane way (yet) and the default does insane things.
23:47 dalek nqp: review: https://github.com/perl6/nqp/commit/265a34edfc
23:58 PacoLinux__ joined #parrot

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

Parrot | source cross referenced