Perl 6 - the future is here, just unevenly distributed

IRC log for #phasers, 2011-08-09

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

All times shown according to UTC.

Time Nick Message
10:15 [particle] joined #phasers
12:51 moritz what I did: lots of nom hacking, in particular:
12:51 moritz * fix radcalc to work with lower case characters too
12:52 moritz * implemented chaining reduce meta op ( if [<=] @list { ... })
12:52 moritz * merged pull requests
12:53 moritz * re-enabled parts of Temporal.pm (rest blocks on weird compilation issues)
12:53 moritz * tested some modules - ufo works with a smallish hack, XML::Writer works fine, SVG.pm is a bit borked
12:54 moritz * brought a simplistic version of MAIN back (tadzik++), simplified the spec a bit
12:54 moritz * added {EnumMap,Match}.ACCEPTS
12:54 moritz * re-enabled CallFrame and callframe() - better than in master
12:54 moritz * Str.trim and Cool variants
12:55 moritz * Match.gist
12:55 moritz * allowed Str matchers in Str.match and thus Str.subst
12:55 moritz * partially impelmented min and minmax
12:56 moritz * re-enabled most of Instant and Duration
12:56 moritz * mentored tadzik++
12:57 moritz * played with exceptions in the nom-exception branch -- kinda works, but needs more polishing after feedback from pmichaud++
12:57 moritz What I plan to do next work:
12:57 moritz * work more on the exception grant (but general nom hacking is just too much fun :-)
12:57 moritz * more nom + modules hacking
12:57 moritz EOR
13:01 mberends joined #phasers
14:32 sorear DID:
14:33 sorear - hacked on CATCH and CONTROL, have a decent implementation that I think matches the spec after a *lot* of questions
14:33 sorear - implemented a bunch of phasers (ENTER, LEAVE, KEEP, UNDO, PRE, POST)
14:34 sorear - with LEAVE, easy enough to add let, temp, TEMP
14:34 sorear - followed latest spec on Nil and .gist/Str
14:35 sorear - a few finishing touches on pseudo-package handling
14:35 sorear WILL DO:
14:35 sorear - I intend to write some comprehensive tests for CATCH, CONTROL, and LEAVE
14:35 sorear +DID:
14:35 sorear - wrote tests for pseudopackages
14:35 sorear EOR
14:36 moritz sorear++
15:24 pmichaud What I did:
15:24 pmichaud nom stuff:
15:24 pmichaud * hyperops
15:24 pmichaud * created a nom->master punchlist
15:24 pmichaud * fixed Str range iterator
15:24 pmichaud * fixed triangle metaops
15:24 pmichaud * updated .Numeric
15:24 pmichaud * made Bool look more enum-like
15:24 pmichaud * fixed segfault with infix:<^^> and infix:<xor>
15:24 pmichaud nqp stuff:
15:24 pmichaud * worked on qregex/ltm/nfa
15:24 pmichaud other stuff:
15:24 pmichaud What I plan to do:
15:24 pmichaud * finish qregex/ltm/nfa
15:24 pmichaud * attend p6 hackathon and yapc::eu
15:24 pmichaud EOR
15:28 moritz pmichaud++
15:42 colomon joined #phasers
17:26 masak joined #phasers
17:39 jnthn Over the last week...
17:39 jnthn * Various Pair tweaks, including assignable .key and .value
17:39 jnthn * Enabled overriding of postcircumfix:<( )>
17:39 jnthn * Junction invocation invokes everything in the junction
17:39 jnthn * Method versions of junction creation
17:39 jnthn * Fixed attribute introspection
17:39 jnthn * Implemented slurp; added get and close subs
17:39 jnthn * Improved multi-dispatch handling of slurpy a bit
17:39 jnthn * Implemented Parcel.Capture and various other Capture bits
17:39 jnthn * Made nested signatures work
17:39 jnthn * Fixed |$c in signatures
17:39 jnthn * Made nom installable; improved NQP installation also
17:39 jnthn * Enabled loading of modules without pre-compilation
17:39 jnthn * Made module search pay attention to @*INC
17:39 jnthn * Implemented delegation; passes all delegation.t
17:39 jnthn * Implemented augment
17:39 jnthn * Fixed up export of multis a bit, though needs more attention
17:40 jnthn * Gave auto-generated accessors a valid name
17:40 jnthn * Fixed scope leakage bug
17:40 jnthn * Got socket IO working again
17:40 jnthn * Many improvements to package handling, which resolved various bugs
17:40 jnthn * Implemented "need"
17:40 jnthn Over the next week...
17:40 jnthn * Prepare for and go to YAPC::EU
17:40 jnthn * Fix up various issues with constraint types in signatures
17:40 jnthn * More work on parametric roles
17:40 jnthn * Try and find the extremely nasty infinite recursion bug involving stringifications when compiling the setting
17:40 jnthn * Lots more, probably :-)
17:40 jnthn EOR
17:58 moritz jnthn++
18:29 masak Had Time For Last Week: nuthin'. Will Probably Have Time For This Week: more nuthin'. Blockers: too many things, it seems. :/ EOR
18:32 jnthn masak: wait, what, you're meant to go to yapc this week :P
18:32 masak jnthn: right, but I'll resurface from my planned procrastination blackout on Monday evening...
18:33 jnthn aha
18:35 masak hopefully, the talks will turn out OK... :)
18:37 Util # Done:
18:37 Util * Discussed pending nom->master merge|replacement with
18:37 Util interested people at the Atlanta.pm after-meeting dinner.
18:37 Util * Talked with colomon about trig functions for Complex.
18:37 Util * Replaced my 30th ed. CRC Standard Mathematical Tables
18:37 Util with 32nd, for its improved Quaternion info (to improve the Perl 6 module).
18:37 Util # Plan to do:
18:37 Util * Compose notes and summarize research on Complex for colomon.
18:37 Util * $WORK xx Inf
18:37 Util EOR
19:00 moritz hello
19:01 masak o/
19:01 moritz it's #phasers time, unless I've mixed up the time zones again
19:01 colomon \o
19:01 jnthn o/
19:01 moritz who wants to deliver a report?
19:01 moritz (mine is far up in the backlog)
19:02 tadzik I have mine prepared
19:02 tadzik =done
19:02 tadzik =item fixed .WHY for subroutines
19:02 tadzik =item implemented .WHY for methods
19:02 tadzik =item implemented Pod::Block::Declarator objects. They have broken order, fixed in wherefore-gc-bug
19:02 tadzik =item lots of Pod::To::Text improvements
19:02 tadzik =item implemented a default DOC INIT phaser. perl6 --doc is now pretty usable
19:03 tadzik =item We now fully parse S26!
19:03 tadzik =item Created a gsoc-countdown list of things on https://github.com/tadzik/gsocmess/issues?milestone=1
19:03 tadzik =todo
19:03 tadzik =item finish gsoc, preferably before the soft-deadline date
19:03 tadzik =item attend yapc::eu with an appropriate amount of fun
19:03 tadzik =blockers
19:03 tadzik =item GC write barrier bug, see the wherefore-gc-bug branch
19:03 tadzik =END
19:03 masak tadzik++
19:03 masak I may be wrong, but if you make up your own keywords, they should be CamelCase. :)
19:03 jnthn It's as likely a missing mark as a wb fail
19:03 tadzik masak: no, I don't think so :)
19:05 moritz tadzik++
19:05 jnthn tadzik++
19:05 mberends aye, tadzik++
19:05 moritz mberends: do you have a report?
19:05 mberends I'm preparing a report, not ready yet
19:06 colomon tadzik++
19:06 tadzik oh, oh. Everyone, please look at my countdown list and add stuff you'd like to see done, which relate to my gsoc
19:06 tadzik also, please try --doc, and report everything that you don't like in Pod::To::Text
19:11 moritz ok, there's one thing I'd like to discuss
19:11 moritz I'm a bit worry that nqp's PARROT_REVISION is > 3.6.0
19:12 moritz because we want to cut a release before the next parrot release, if I understand correctly
19:12 colomon what's going on that would cause that?
19:12 moritz PCT changes, iirc
19:12 tadzik yes, xor stuff
19:13 colomon they're skipping a month?
19:13 tadzik who?
19:13 colomon parrot
19:13 jnthn moritz: What's the exact worry?
19:13 tadzik Parrot? No, we're releasing before 3.7.0
19:13 jnthn moritz: That we should only ever release against a released Parrot?
19:14 moritz jnthn: well, it would be the first time we wouldn't
19:14 jnthn True.
19:14 jnthn This is an "out of cycle" release anyway, mind.
19:14 moritz maybe not a good time for setting a precedence
19:15 jnthn It's uncomfy, I agree, but it may be the lesser evil.
19:16 moritz we could also ask the parrot folks for permission to cut a 3.6.1 release with jsut the patch that nqp needs
19:17 pmichaud why did nqp's PARROT_REVISION get bumped?
19:17 jnthn pmichaud: The clone bug.
19:17 pmichaud oh.
19:17 jnthn That was a PAST::Compiler patch.
19:18 pmichaud fixing PAST::Compiler generally doesn't have to be done in Parrot, though.
19:18 pmichaud for example, I fixed 'xor' without patching Parrot.
19:18 jnthn Yes, but by introducing a new pasttype, iiuc?
19:19 * jnthn wonders if we can do similar-ish
19:19 pmichaud yeah, I was really wanting to avoid any PARROT_REVISION bumps
19:19 pmichaud I didn't realize there was on there.
19:19 pmichaud *one
19:19 pmichaud looking.
19:20 jnthn If we can find a way to bring the fix into nqp without massive disruption, +1.
19:22 pmichaud I don't see an easy way to do it... I'll have to think on it a bit more.
19:22 jnthn Yeah, I feared it was in an awkward place :(
19:23 moritz can't you monkeytype parrot classes
19:23 moritz ?
19:23 pmichaud it's not a class
19:23 pmichaud it's a PMC
19:23 pmichaud oh, you mean monkey-type PAST::Compiler?
19:23 jnthn yeah
19:23 jnthn May be feasible.
19:24 pmichaud that's a really long method to be monkey-patching, though.
19:24 jnthn aye
19:24 pmichaud although we might want to monkey patch it to use temp regs for .const also
19:24 pmichaud instead of uniquereg
19:24 jnthn The other alternative is that I make SixModelObject PMC's clone vtable the identify function for the release. ;-)
19:25 jnthn ah, yeah, that .const fix would be good to have also.
19:25 jnthn The PIR compile time for the setting is kinda ew.
19:25 pmichaud yeah
19:25 pmichaud is the symtable object a sixmodelobject?
19:25 jnthn And it's only a monkey-patch for one release.
19:26 jnthn No
19:26 jnthn The problem was that it ended up deep cloning
19:26 pmichaud right
19:26 jnthn So it tried to clone one.
19:26 pmichaud oh, I see what you're saying.
19:26 jnthn Which I expected to just explode
19:26 jnthn Apart from Parrot, er, tries to make it work
19:26 tadzik augment Report { implemented DOC use, will push after spectesting }
19:26 jnthn ...and guesses wrong and then we segfault.
19:28 masak aww
19:29 jnthn (I should note, we occasionally segfault. I only found this so quickly because tadzik++ provided a stacktrace that luckily gave me a good hint at what was going on.)
19:31 pmichaud I'll think about how to deal with the PAST::Compiler issue for a day.
19:31 jnthn ok
19:31 jnthn If I think of anything I'll mention it.
19:31 pmichaud We'll either do that or we'll cut against the August release (which is a week from today)
19:31 pmichaud (the August Parrot release)
19:35 mberends my report is ready...
19:35 mberends 6model/c status:
19:35 mberends * only parts of a runtime created so far
19:35 mberends * bbkr++ provided an OS X 10.7 Lion shell for testing
19:35 mberends * have almost complete portability to Linux, OS X, MSC and MinGW
19:36 mberends * hashtable library passes simple tests including valgrind
19:36 mberends * have portable system time and sleep functions
19:36 mberends * began a wrapper library on top of Posix and Win32 threads, with tests
19:36 mberends planning:
19:36 mberends * more thinking about classic thread safety problems
19:36 mberends * a heap manager with ref counting initially and ref tracking later
19:36 mberends * proof of concept to detect and manage circular references
19:36 mberends * want to use background threads in the garbage collector
19:36 mberends * create the 6model SerializationContext using the managed heap
19:36 mberends EOR
19:37 tadzik mberends++
19:37 tadzik also pre-reporters++
19:37 jnthn mberends++ # nice! :)
19:38 moritz mberends++
19:38 pmichaud mberends++
19:39 jnthn mberends: There's a new revision of the GC book coming out later this month, fyi
19:39 * jnthn is planning to get a copy
19:39 tadzik the GC book?
19:40 jnthn http://www.amazon.com/Garbage-Collection-Handbook-Management-Algorithms/dp/1420082795
19:40 jnthn That's the new one
19:40 jnthn Pervious version was quite famous text in the field too though :)
19:40 jnthn *Previous
19:40 mberends Garbage Collection by Richard Jones: http://www.cs.kent.ac.uk/people/staff/rej/gc.html
19:40 jnthn Yup, that guy
19:40 tadzik intredasting
19:49 mberends thinking and reading about garbage collection, and about threads, has consumed lots of my time recently. I think threading in particular is still going to require lots of careful work. Unfortunately S17 (Concurrency) is a jumble of outdated thoughts.
19:49 masak indeed.
19:49 mberends hopefully 6model/c will serve as a testbed for low level implementation ideas
19:50 masak I'd be happy to collaborate in a small cabal of S17 reformers. but someone else'd definitely have to lead such an effort.
19:50 pmichaud fwiw, I still think a good place to start would be to figure out how to make hypers threaded.
19:51 pmichaud the new hyper code in nom should make that a lot easier, too.
19:51 TimToady hypers and feeds
19:51 mberends threading is kinda ok, autothreading takes it to another level
19:51 * jnthn wonders what nom would make of the Parrot threads implementation
19:51 masak do gather blocks thread?
19:52 pmichaud not afaik
19:52 TimToady the big issue is probably non-blocking-ness plus scheduler
19:52 pmichaud nom uses infix:<Z> out of convenience, not necessity though
19:52 pmichaud I could rewrite to avoid the Z
19:52 TimToady gathers may thread if they think it's a win
19:53 masak same as hypers then, I guess.
19:53 * jnthn would be very interested to work on threading stuff, especially in seeing what can be done with lock-free data structures.
19:53 pmichaud a perhaps better example would be to look at dispatch:<hyper> in Mu
19:54 TimToady I'm expecting the specs to mutate with respect to what is visible and/or owned outside of a thread's code
19:54 TimToady one or the other side of a feed operator (or both) may have restrictions in what they can access
19:54 pmichaud dispatch:<hyper> already breaks the problem down into independent blocks (via map)
19:55 TimToady or we might need some policy that a given object can belong to only one thread at a time
19:55 TimToady we'll also have to mesh a high-level transactional view with a lowe-level event view
19:55 TimToady *low
19:56 TimToady but lockless is good to the extent we can manage it
19:56 TimToady in any case, the fewer locks there are, the easier they'll be to understand
19:57 jnthn *nod*
19:57 TimToady not planning on a GIL though :)
19:57 jnthn Please no :)
19:57 tadzik :)
19:59 TimToady now we just need a champion who knows what they're doing and won't run away screaming
19:59 * TimToady is wondering whether the two are mutually exclusive...
20:00 pmichaud more precisely:  knows enough to work on the problem; ignorant enough to not run away screaming
20:00 pmichaud "run away screaming" is probably something I should've done in 2004.  :)
20:01 jnthn ;)
20:03 TimToady heh, concurrency and documentation synopses were both created in 2005
20:03 moritz we have a concurrency synopsis?
20:04 jnthn No, we have a concurrency...idea heap :)
20:04 * moritz only knows of a concurrency handwaving doc
20:04 TimToady all the ideas have to be implemented concurrently
20:06 masak if the person is good at threading, he or she could work on the problem *and* run away screaming...
20:07 pmichaud we need to identify the person, then attach a Global Implementor Lock
20:07 jnthn core blimey!
20:07 * masak .oO( Guido's Interpreter Lock )
20:08 moritz .oO( Garbage In Languages )
20:10 jnthn I'm trying to think of a good name for "properties of the type of thing a meta-object can implement". For example, can it serve as a nominal type? Can it be instantiated? Is it generic?
20:10 jnthn Any naming ideas?
20:10 jnthn Best I have so far is something like "type capabilities" :)
20:10 pmichaud typabilities
20:11 masak ooh
20:11 jnthn :)
20:11 pmichaud typroperties
20:11 mberends electionpromises
20:11 jnthn mberends: Yes, but the meta-object shouldn't go on to break them. :P
20:11 mberends manifesto
20:12 pmichaud teaparty
20:12 pmichaud teaparty works because then you can supply more "defaults"  :-P
20:12 jnthn :-P
20:12 mberends metapowers
20:13 pmichaud metaprops
20:13 TimToady archetypes
20:13 pmichaud metattrs
20:13 jnthn TimToady: oooh
20:13 TimToady sememes
20:15 TimToady hownows
20:16 jnthn or howknows... :)
20:16 * jnthn likes typabilities and archetypes best so far
20:18 jnthn The thinking behind this is that if people are doing custom meta-programming, we want to make decisions of something they can customize, rather than going by the name of the KnowHOW or some kind of type hierarchy thing.
20:18 jnthn *off something
20:19 jnthn Goes without saying this is fairly deep in meta-space, and not something a "normal user" will run into.
20:19 TimToady skypies
20:20 jnthn :)
20:21 * jnthn goes with archetypes for the time being.
20:22 masak in the Jungian collective consciousness, archetypes go with YOU.
20:23 jnthn :P :P
22:04 mberends "Phasers" were already in supercomputers in 2008: http://portal.acm.org/citation.cfm?doid=1375527.1375568
22:09 mberends teh warez even: http://www.cs.rice.edu/~dmp4866/PDF/2008.ics-phasers.pdf
22:13 sorear oops, I accidentally napped through #phasers

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