Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-01-12

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 mako132_ joined perl6
00:16 Arathorn fwiw the problem is judy internally trying to assign void *s to long unsigned int *s, which c seems happy to do implicitly (but not c++).
00:20 leed joined perl6
00:30 allbery_b yep, C still permits it for historical/legacy reasons; C++ took the path of disallowing things that really shouldn't be permitted
00:37 dmq i thought void * was supposed to be big enough to hold any pointer?
00:46 nipotaway is now known as nipotan
00:46 luqui joined perl6
00:49 kensanata` joined perl6
00:49 Khisanth Arathorn: you are trying to compile C code with a C++ compiler?
00:50 kensanata` left perl6
01:00 polettix joined perl6
01:02 Arathorn Khisanth: indeed
01:02 Arathorn fool that i am
01:09 BooK_ joined perl6
01:15 knewt joined perl6
01:37 TimToady j
01:42 luqui I know you knew APL, so I can see why you would have an interest
01:59 Schwern joined perl6
02:01 james__ joined perl6
02:02 james__ yo
02:05 bonesss joined perl6
02:21 lisppaste3 joined perl6
02:23 thepler joined perl6
02:24 thepler joined perl6
02:43 dmq joined perl6
03:13 spx2 joined perl6
03:14 spx2 hello
03:14 spx2 i get allot of heaavches tryin to get stuff like Global symbol "@stuff" requires explicit package name at C:\Documents and Settin
03:14 spx2 gs\spx2\Desktop\dezvoltare\perlhobb​y\trunk\sock\mihaishelltest/serv.pl  line 35.
03:14 spx2 Global symbol "$file" requires explicit package name at C:\Documents and Setting
03:14 spx2 s\spx2\Desktop\dezvoltare\perlhobby​\trunk\sock\mihaishelltest/serv.pl  line 36.
03:15 spx2 Global symbol "$static_pattern" requires explicit package name at C:\Documents a
03:15 spx2 nd Settings\spx2\Desktop\dezvoltare\perlh​obby\trunk\sock\mihaishelltest/serv.pl
03:15 spx2 line 36.
03:15 spx2 Global symbol "$file" requires explicit package name at C:\Documents and Setting
03:15 spx2 s\spx2\Desktop\dezvoltare\perlhobby​\trunk\sock\mihaishelltest/serv.pl  line 37.
03:15 spx2 Global symbol "$ftp_connection" requires explicit package name at C:\Documents a
03:15 spx2 nd Settings\spx2\Desktop\dezvoltare\perlh​obby\trunk\sock\mihaishelltest/serv.pl
03:15 spx2 line 38.
03:15 spx2 Global symbol "$file" requires explicit package name at C:\Documents and Setting
03:15 spx2 i really dont like it
03:15 spx2 what should i do ?
03:17 avar perldoc strict <= read, and this is a perl 6 channel
03:17 spx2 avar i tried use strict
03:17 spx2 with my in front of everything
03:18 spx2 i get no errors
03:18 spx2 but i loose all functionality
03:18 spx2 let me expain actually what im tryin to do
03:18 spx2 is this
03:18 spx2 i have two scripts
03:18 spx2 both separateely work perfect
03:18 avar again, this is perl5 right?
03:18 spx2 but i want to combine them
03:18 spx2 and when i do this,all hell breaks loose
03:18 spx2 lemme see what perl i have
03:18 spx2 5.8.8
03:23 spx2 avar: ?
03:28 spx2 ok
03:28 spx2 so this is my problem more detailed
03:28 spx2 im opening in one script
03:29 spx2 a connection to a ftp server and at the same time a socket
03:29 spx2 thats my problem actually
03:29 spx2 it seems that it doesnt work at all if i do this
03:29 spx2 how can i have multiple connections
03:29 spx2 ?
03:31 avar This is really not a Perl 5 help channel, it's for discussion of Perl 6 development and implementation
03:49 Khisanth joined perl6
03:50 mako132_ joined perl6
04:03 mako132_ joined perl6
04:25 penk joined perl6
04:39 nipra joined perl6
05:07 stevan_ joined perl6
05:11 mako132_ joined perl6
05:19 mj41_____ joined perl6
05:52 b00t joined perl6
05:57 nipra joined perl6
06:14 BooK joined perl6
06:35 clkao /win 3
06:58 Rauhut joined perl6
07:06 stevan__ joined perl6
07:10 nipra joined perl6
07:10 lisppaste3 joined perl6
07:10 integral joined perl6
07:10 allbery_b joined perl6
07:10 qmole joined perl6
07:10 nanonyme joined perl6
07:10 kane_ joined perl6
07:32 demy joined perl6
07:32 demy left perl6
07:34 lyokato joined perl6
07:34 Rauhut left perl6
07:58 sunnavy joined perl6
08:03 devogon joined perl6
08:10 leed joined perl6
08:14 Psyche^ joined perl6
08:14 Psyche^ is now known as Patterner
08:17 iblechbot joined perl6
08:50 dduncan left perl6
08:54 drrho joined perl6
09:24 andara joined perl6
09:34 cognominal joined perl6
09:56 svnbot6 r15044 | fglock++ | kp6 - more specs
09:56 fglock joined perl6
10:08 marmic joined perl6
10:08 svnbot6 r15045 | fglock++ | kp6 - add docs/
10:29 fglock clkao: what am I doing wrong? svk copy //pugs //local -- Filesystem has no item: File not found: revision 1, path '/pugs'
10:32 ludan joined perl6
10:42 audreyt //mirror/pugs surely?
10:43 audreyt svk cp //mirror/pugs //pugs
10:43 * audreyt <- boarding flight => HongKong => Zurich => Nice in ~30mins
10:44 Psyche^ joined perl6
10:44 Psyche^ is now known as Patterner
10:44 masak audreyt: with a laptop? does that mean we'll see some pugs patches when you land? :)
10:45 audreyt perhaps, yeah, but I'm still backloggin gthe massive synopsis deltas
10:49 masak audreyt: understandable
10:49 masak anyway, happy flying
10:49 audreyt thanks!
10:50 masak I hear Nice is nice
10:50 rgs it is
10:52 masak though in my part of Europe (admittedly a bit further north) the weather is hesitating between rain and extreme cold
10:53 * masak is in a quantum combination state of damp and frozen
10:53 fglock audreyt: same problem
10:53 rgs well, last fortnight in Nice, the temperature was about 15°C
10:53 fglock audreyt: please review the (incomplete) kp6 plan if you can
11:02 gaal audreyt: happy moose
11:03 ruoso joined perl6
11:35 svnbot6 r15046 | fglock++ | mp6-p5 - fix: 'self' without a method was mistaken with 'self()'  
11:43 ruoso joined perl6
11:53 fglock joined perl6
12:19 nipotan is now known as nipotaway
12:41 mako132_ joined perl6
12:42 svnbot6 r15047 | fglock++ | mp6 - grammar fix: token 'apply' was never called
12:55 bonesss joined perl6
12:57 bonesss joined perl6
12:57 Limbic_Region joined perl6
13:05 buetow joined perl6
13:12 chris2 joined perl6
13:15 svnbot6 r15048 | fglock++ | mp6 - grammar fix: allow 'apply' without args - class X { a( x, y ) }
13:17 pasteling "evalbot_r15047" at 194.145.200.126 pasted "Pugs build failure" (375 lines, 20.9K) at http://sial.org/pbot/22321
13:18 svnbot6 r15049 | fglock++ | kp6 - added 'mp6' compiler script
13:18 svnbot6 r15049 | fglock++ | kp6 - Traverse - added 'self' to visitor params
13:24 iblechbot joined perl6
13:50 lambdabot joined perl6
13:55 gnuvince joined perl6
14:38 bonesss joined perl6
14:39 [particle] joined perl6
15:30 fglock joined perl6
15:30 GabrielVieira joined perl6
15:35 _chill joined perl6
15:35 notjohn joined perl6
15:35 Guest594 joined perl6
15:35 _chill left perl6
15:36 Guest594 perl6 is close to release?
15:37 fglock Guest594: there are 'alpha' versions
15:37 cognominal yes... as it has always been form the start :)
15:37 Guest594 is there a book release to market?
15:38 Guest594 perl6 will be oriented-object?
15:39 Limbic_Region Guest594 - why don't you take a look at http://dev.perl.org/perl6
15:39 lambdabot Title: Perl 6 - perl6
15:39 cognominal Guest594,  today you best bet is to read the synopsis
15:39 cognominal http://dev.perl.org/perl6/doc/design/syn/S12.html  # the one about objects
15:39 lambdabot Title: Synopsis 12: Objects - perl6:
15:40 vel joined perl6
15:41 cognominal you will see that Perl6 will support  class and prototype  object oriented programming, and code composition thru roles.
15:41 cognominal It is high level but very much parameterable
15:41 Guest594 You'll be able to write your program in Perl 6, Perl 5, TCL, Python, or any other language that there's a parser written for. (very great!)
15:42 cognominal it is worth the wait.
15:43 Guest594 but i think its a big gift to python
15:43 Guest594 too big
15:43 Guest594 Perl is not perl from now on...
15:43 Guest594 perl is perl  python tcl ..
15:43 cognominal not it is not. You will want to write in Perl 6
15:46 svnbot6 r15050 | fglock++ | kp6 - kp6-dump-ast.pl - emits ast as a perl structure
15:48 Guest594 cognominal do you think that will be long to the famous module to be rewriten in perl6 ? (DBI, LWP..)
15:48 pasteling "evalbot_r15049" at 194.145.200.126 pasted "Pugs build failure" (375 lines, 20.9K) at http://sial.org/pbot/22328
15:49 kolibrie lwp is already rewritten in Perl 6
15:49 cognominal Well, Tim Bunce has the intention to rewrite DBI. He told us so when in Paris two years ago
15:55 [particle] joined perl6
15:56 hcchien joined perl6
15:57 wilx` joined perl6
16:03 Guest107 joined perl6
16:06 nipra joined perl6
16:19 svnbot6 r15051 | seano++ | Add solution that tickles bug
16:24 kanru joined perl6
16:30 xinming joined perl6
16:37 weinig is now known as weinig|bbl
16:44 Haluy joined perl6
16:46 svnbot6 r15052 | fglock++ | kp6 - fix file names
16:51 Haluy left perl6
16:58 svnbot6 r15053 | fglock++ | kp6 - added KindaPerl6::Visitor::Perl - dumps the AST as p6 (.perl dumper)
17:00 bonesss joined perl6
17:05 bonesss joined perl6
17:07 svnbot6 r15054 | fglock++ | kp6 - ast dumper - cosmetic fixes
17:09 buetow joined perl6
17:10 * yves_ is away: Occupé
17:11 dmq yves_?
17:12 bonesss joined perl6
17:15 bonesss joined perl6
17:21 bonesss joined perl6
17:22 bonesss joined perl6
17:23 hexmode joined perl6
17:23 TimToady that's weird, when I smoke pugs every test now gets:
17:23 TimToady Reference found where even-sized list expected at /usr/lib/perl5/site_perl/5.8.8/Test/TAP/Model.pm line 172.
17:24 TimToady was there an "upgrade" recently?
17:40 elmex joined perl6
17:41 thepler joined perl6
17:54 ozo joined perl6
17:54 svnbot6 r15055 | szabgab++ | Perl6/Doc.pod - add more of the existing entries manually
17:54 avar TimToady: does the TAP output look screwed?
17:55 wilx` is now known as wilx
17:56 [particle] btw, if callbacks aren't implemented, we need them, and would love the help
17:56 [particle] hopefully leo or chromatic (or someone else with embedding knowledge) will get back to you soon
17:56 [particle] oops
17:57 [particle] TimToady: what version of Test::TAP::Model? did it change recently?
17:58 TimToady then it gets a lot of:
17:58 TimToady Use of uninitialized value in subroutine entry at /usr/lib/perl5/site_perl/5.​8.8/Test/TAP/Model/File.pm line 89.
17:58 TimToady but the smoke seems to come through fine on the smoke server.
17:59 TimToady avar: I presume if the smoke data came through then the TAP output is probably fine.
18:00 TimToady [particle]: version 0.06, it appears to be
18:00 fcbarcelona joined perl6
18:00 TimToady but that file was installed Sept 15, so the problem is likely elsewhere
18:05 Limbic_Region anyone have any update on audreyt (how she is doing)
18:06 TimToady well, smoke comes through okay, so I'm not gonna sweat it right now.
18:06 TimToady she's flying to Nice
18:06 dmq nice.
18:06 TimToady according to the backlog last night
18:07 pbuetow joined perl6
18:07 mj41 joined perl6
18:09 Limbic_Region well, hope it's nice in Nice
18:13 [particle] nicely done
18:17 justatheory joined perl6
18:20 mj41_ joined perl6
18:23 szabgab joined perl6
18:24 szabgab while trying to build a fresh pugs from svn I get Can't locate v6.pm in @INC
18:25 szabgab oh, it seems I missed some of the CPAN prereqs, insatlling them now...
18:30 svnbot6 r15056 | fglock++ | mp6-p5 - fixed .isa on native string
18:31 svnbot6 r15057 | fglock++ | kp6 - added TODO
18:31 svnbot6 r15057 | fglock++ | - translated KindaPerl6::Visitor::Perl to p6 (mp6)
18:33 fglock I wonder why did szabgab get that message
18:36 * allbery_b has been getting those Test::TAP::Model errors from the start --- and his smoke test attempts alway show individual tests passing but the whole file failing
18:38 luqui joined perl6
18:40 smash_ joined perl6
18:40 smash_ hi everyone
18:40 andara left perl6
18:53 rindolf joined perl6
18:53 rindolf Hi all.
18:53 justatheory joined perl6
18:59 svnbot6 r15058 | fglock++ | kp6 - added KindaPerl6::Visitor::LexicalSub - first AST transformation module
19:01 fglock smash_, rindolf: hi
19:01 rindolf Hi fglock
19:02 rindolf fglock: yesterday and today, I really started working on XML::RSS after a long time.
19:02 rindolf fglock: I had to deal with some technicalities and administrativia.
19:06 * wolverian likes XML::RSS::LibXML
19:07 rindolf wolverian: I think XML::RSS::LibXML still uses XML::RSS for generating the RSS.
19:08 wolverian rindolf, no.
19:08 miyagawa nah, it doesn't
19:08 wolverian this is not to say that XML::RSS shouldn't be fixed, of course :)
19:10 fglock hmm - I never needed to work with RSS
19:13 pasteling "fglock" at 201.35.169.13 pasted "the kp6 AST dumper" (9 lines, 535B) at http://sial.org/pbot/22333
19:15 wolverian fglock, if you ever do, check Plagger out :)
19:15 wolverian er, check out Plagger :)
19:17 fglock wolverian: looking...
19:17 wolverian (miyagawa++)
19:20 svnbot6 r15059 | fglock++ | kp6 - AST dumper - fixed missing comma in the output
19:22 wolverian miyagawa, hey, didn't you rewrite the FOAF plugin to use something else than XML::FOAF, or was it something else I'm thinking of?
19:23 miyagawa wolverian: no, I don't think I touched the FOAF plugin
19:23 Hgud joined perl6
19:23 wolverian hm. maybe I dreamed that, then.
19:24 Hgud So if I want to continue using my perl5 script, the perl6 interpreter with the correct parser will let me do this?
19:24 fglock Hgud: yes, and the perl5 parser is there by the default
19:25 fglock by default
19:25 Hgud hehe really nice
19:26 Hgud but most of us will learn perl6 and change our script i think
19:26 bernhard joined perl6
19:27 Hgud is there many many new thing
19:27 Hgud and the old thing change or stay the same
19:28 ofer0 joined perl6
19:29 fglock Hgud: see http://dev.perl.org/perl6/
19:29 lambdabot Title: Perl 6 - perl6
19:29 wolverian http://spec.pugscode.org too, for a somewhat nicer version, perhaps.
19:29 lambdabot Title: Official Perl 6 Documentation
19:31 Hgud and in the alpha version, all new thing is available?
19:32 wolverian not in the current implementations, yet.
19:41 rindolf miyagawa: what's up?
19:52 fglock kp6 AST transforms work - yay!
19:52 svnbot6 r15060 | fglock++ | kp6 - working lexical-sub AST transform; working compiler "pipeline"
20:10 mncharity joined perl6
20:13 svnbot6 r15061 | fglock++ | kp6 - added examples/
20:14 mncharity is now known as putter
20:14 fglock putter: hi!
20:15 putter hi fglock :)
20:15 lambdabot putter: You have 1 new message. '/msg lambdabot @messages' to read it.
20:16 fglock long time no see
20:17 putter audreyt: re "audreyt said 1m 10d 13h 51m 30s ago: do you perhaps have tuits to turn re::override to use re::engine plumbings dmq hacked so we have a generic perlland overrride hook? see my PCRE entry for some"
20:19 putter ... re tuits... not so much for that.  If someone else was doing internals work, I might lend an oar.  but my experience was the internals were
20:20 putter just to many kinds of broken for them to be any kind of O(fun) for me.
20:20 putter s/to/too/
20:20 SamB joined perl6
20:21 putter Even just accessing lexical variables from C-side would cause later segfaults.
20:22 putter fglock: yeah.  sorry about that.  perl6 is just too attracting a distraction from what I should be doing just now.  more tuits hopefully in a month or so.
20:22 svnbot6 r15062 | fglock++ | kp6 - more complex lexsub-example.pl
20:23 putter s/attracting/attractive/
20:23 stevan__ heya putter
20:24 putter hey stevan, how goes?
20:24 stevan__ putter: not bad,.. and yourself
20:24 stevan__ is now known as stevan
20:25 putter long deferred $jobsearch in progress. :)
20:26 stevan ahh .. fun
20:27 putter are we 2 months closer to christmass than... we were two months ago?
20:28 fglock putter: there is another compiler under way (in 6-on-6 land)
20:28 putter I lost touch about the time of the move from openfoundry.
20:28 putter fglock: neat!
20:28 fglock putter: it's based on a bootstrapped 6-on-6
20:29 putter how far has it gotten?
20:30 fglock there are 2 versions: mp6 is the MiniPerl6 compiler - this is bootstrapped in p5, compiles simple code to parrot too
20:31 fglock the new version implements arbitrary desugarings
20:32 fglock so that is can support both high-level and low-level (C, assembler?) backends
20:32 fglock new version = kp6 (KindaPerl6)
20:33 putter so... two compilers, both written in p6, both run on pugs and p5, both compile to... p5 runtime and...?
20:33 fglock both versions are implemented in (simple) p6 - including the grammar, grammar engine
20:34 fglock the parrot backend was only half finished
20:34 fglock there is some work on the PAST emitter
20:34 fglock and maybe C#
20:35 putter how much of the test suite passes?
20:35 fglock nothing
20:35 putter eep
20:35 fglock the 'test' is to bootstrap - compile itself and see if it still runs
20:36 putter why no test passes?  none even using a simplified Test.pm?
20:37 * putter puzzled
20:37 fglock nope - because it has no containers :)
20:38 putter ok. let's see...
20:38 fglock http://svn.pugscode.org/pugs/v6/​v6-MiniPerl6/miniperl6-spec.pod
20:38 putter how goes the mmd dispatch algorightm design?
20:39 fglock I'm not up to date on that
20:40 fglock mmd will be supported by an AST transform - it can be backend-dependent
20:40 putter lambdabot: tell audrey If you would like to give an early practice POPL talk at MIT (similar cuilture to POPL), just let me know...
20:40 fglock likewise with OO and containers - kp6 is fully pluggable
20:40 stevan putter: I think she is boarding the plane to Nice as we type
20:41 putter oh, yipes.  POPL time already.  tnx stevan
20:41 putter err, there were some practice talks given, yes?
20:42 stevan putter: I dunno, I assume she has, but you never know,.. this is audrey
20:42 stevan it might not even be written yet ;)
20:42 * putter has images of Dan S giving a Wall-style talk at LightweightLanguages.  Didn't go over to well... <understatement>
20:43 putter <understatement> ::= <unmitigated disaster>
20:44 fglock putter: kp6 implementation started ... today
20:44 leed joined perl6
20:44 putter POPL has a particular culture... a perl-community style talk... could be unfortunate.
20:45 * avar is curious as to what a larry|perl-style talk is
20:45 putter fglock: ah :)
20:45 avar having never been to one:)
20:45 putter avar: google wall state of the onion    at least some of them should be online.
20:46 avar videos?
20:46 * avar looks
20:46 putter very... non-cs-academic.  sort of choreographed free association poetry.  or something vaguely like that.
20:48 avar http://developers.slashdot.org/comm​ents.pl?sid=163115&amp;cid=13626262
20:48 lambdabot Title: State of the Onion 9, http://tinyurl.com/y8rglb
20:48 avar slashdot never ceases to amuse:)
20:48 avar chromatic++
20:48 fglock putter: the goal for kp6 is to provide lexical modifications to the p6-grammar - rather than compile Test.pm
20:49 fglock it's focused on the compiler infrastructure
20:50 fglock so that the full-p6compiler can be built using it
20:53 pdcawley joined perl6
20:54 kolibrie stevan: putter: I believe audreyt's plan was to write her talk in Nice, before the 16th or so
20:55 putter thanks kolibrie
20:55 kolibrie are we still on for a Boston hackathon early May?  which week was it?
20:55 fglock putter: the amount of Perl5 code in mp6/kp6 is only 11kB (that's the whole runtime) - everything else is p6
20:56 putter Boston hackathon?!?:)
20:56 putter fglock: neat.  does the rest run on pugs as well as p5?
20:57 fglock putter: I haven't tried...
20:57 masak fglock: is there a way to get to know more about mp6/kp6? any good starting points?
20:57 * putter tries to remember if audreyt has previously given academic talks...
20:58 kolibrie putter: someone was visiting Boston in May and convinced audreyt to come along
20:58 kolibrie it was on IRC at least a month or two ago
20:58 putter :)
20:58 putter something to look forward to
20:59 fglock masak: try out hello.sh in v6/v6-MiniPerl6/
20:59 kolibrie I probably will be up that way the first week in May, so I could join in if that's when it is
20:59 fglock masak: and hello-parrot.sh
21:00 fglock masak: http://pugs.blogs.com/photos/v​isiolization/mp6bootstrap.html
21:00 lambdabot Title: Visiolization: Mp6bootstrap
21:00 putter steven,spinclad: Boston.pm is looking hard for topics most months, so could do a p6 related easily...
21:01 diakopter joined perl6
21:01 * putter forgets who else is in the Boston area.
21:02 fglock masak: the work-in-progress is the implementation of http://svn.pugscode.org/pu​gs/v6/v6-KindaPerl6/docs/
21:02 lambdabot Title: Revision 15062: /v6/v6-KindaPerl6/docs
21:04 putter has anyone pursued moving prelude stuff from Prim.hs to Prelude.pm?
21:05 putter before I disappeared, the state of the move was "pi now works" and "audreyt believes all uncovered difficulties now fixed".
21:05 fglock pugs: I tried out pugs> use MiniPerl6::Perl5::Emitter - no errors :)
21:05 fglock it might work
21:06 putter next step was to try and move more challenging stuff.
21:06 putter shifting the primitives from hs into p6, where they could be used by all implementations.
21:07 putter anyone else pick it up, or did it stall?
21:07 fglock probably stalled
21:07 masak fglock: thx
21:07 putter :(
21:08 fglock heh - when I said 'pugs:' I meant 'putter:'
21:09 * avar can't find any state of the onion videos
21:09 avar saw the slides, a video might be nice:)
21:09 putter any changes in developer/development support infrastructure?  a project plan?  task list?  development state overview?  greater use of a wiki?
21:09 fglock no changes
21:10 putter avar: I've only seen slides online.
21:10 avar ;/
21:10 putter fglock: re pugs/putter :)
21:11 putter re "no changes",  :-------(
21:11 putter (a long face)
21:11 fglock oops - I need to leave
21:11 putter fglock: nice seeing you
21:12 diotalevi fglock: was your DDS need resolved the other day? I started on fixing it by writing a test case but um... DDS is kind of difficult to work with. It may not get fixed without some thought.
21:12 fglock good night!
21:12 diotalevi oh drat.
21:12 putter good night fglock
21:12 fglock diotalevi: I just wrote a replacement, in plain p6
21:12 lumi_ is now known as lumi
21:12 diotalevi ah.
21:12 fglock thanks!
21:13 * putter googles for online project management tools...
21:13 fglock &
21:13 dduncan joined perl6
21:33 luqui putter, find anything?
21:38 kasero joined perl6
21:39 putter luqui: still looking....
21:39 putter intend to further explore taskjuggler, gnome planner, maybe kplato
21:40 putter none seem ideal for this kind of complex open development project
21:40 putter want rich task decomposition and dependencies, alternate senarios and risk management,  dont care so much about resources and absolute calendar time
21:42 kasero left perl6
21:42 putter actually, that was a linux list.  I guess I should be in web-app space instead, since several folks are windows based
21:43 kasero joined perl6
21:57 Aankhen`` joined perl6
22:02 kasero joined perl6
22:06 kasero left perl6
22:08 kolibrie putter: I think at least some pugs project management stuff is in hiveminder.com
22:10 Alchemy joined perl6
22:10 putter kolibrie: ah, right.  I remember getting some "do you accept this task?" emails
22:12 putter re ideal system, one really wants dependencies to be the core.  both completion and dependencies are soft.  "x is far enough along that I can make progress on y".
22:12 prism joined perl6
22:20 TimToady putter: on mmd design, I'm currently thinking about that again these days.  I don't think mmd-draft.txt is quite the right answer.  The voting algorithm there is pretty hard to understand.
22:22 neonse joined perl6
22:22 * putter tries to find mmd-draft online...
22:23 TimToady docs/notes/multi_method_dispatch/mmd-draft.txt
22:23 masak putter: http://svn.pugscode.org/pugs/docs/note​s/multi_method_dispatch/mmd-draft.txt
22:23 lambdabot http://tinyurl.com/yccpw2
22:24 putter thanks!
22:25 TimToady I think it would be easier to understand if recast in the form of a topological sort.
22:25 TimToady it's also tending to assume that semicolon is the only disambiguator,
22:27 TimToady and I don't think it gives a dispatcher a lot to work with if the dispatcher wants to use other policies than abject failure on ambiguous dispatch
22:29 bonesss joined perl6
22:30 TimToady and it just feels to me more like a surreal precedence problem.
22:30 putter it also doesnt deal well with commutative f(A,B) where A is more important than B.
22:31 putter and we never really explored stability, conflict removal, and such use dynamics.
22:32 TimToady some applications may actually prefer an indeterminate call in cases of ambiguity, particularly if they're trying to run a robot.
22:33 masak what are the common use cases for mmd?
22:33 TimToady when throwning an exception causes loss-of-vehicle, sometimes it's better to guess.
22:33 masak (except running robots)
22:33 TimToady well, we don't know yet, basically.
22:33 masak but in a broad sense, what are they?
22:33 masak why are they added to p6?
22:33 TimToady arguably all the applications we play with now are toys
22:34 masak but hopefully useful toys
22:34 TimToady I think mmd is potentially a very powerful component of failsoft behavior.
22:34 TimToady especially if one multi can give up and let another one try.
22:34 putter re ambiguity, the core of mmd-draft was an attempt to "operationalize" the concepts of "after the ; is less important" and "ambiguity is failure".  So, yes.
22:35 masak I remember hearing TheDamian say once that mmd needs to be extremely simple for it to be useful; I think I agree
22:35 masak after all, the programmer will at some point need to "guess" what the program will do
22:36 masak and so needs to be able to fit the mmd model into her brain
22:36 TimToady and I think mmd-draft fails the fit-in-Larry's-brain test...
22:36 masak dito
22:37 TimToady basically, what I want is to start with a caller profile that's, say, a string encoding of the types of the call args.
22:37 TimToady look that up in a hash
22:37 TimToady get a topologically sorted list of candidates
22:37 TimToady and just start running down it.
22:37 putter question is whether the set of mmd algos which satisfy fit test and dont have well known "that's NOT what I want it to do in situation x" problems is empty or not.
22:37 TimToady find the best one and call it.
22:38 ironmo joined perl6
22:38 masak what's the simplest thing that could possibly work?
22:39 TimToady and the policies for what "best" means have to be pluggable to some extent.
22:39 TimToady simplest is simply to require exact match or fail. :)
22:40 TimToady but most everyone doesn't want it that simple.
22:40 luqui you can't just topologically sort and pick the first one you see
22:40 luqui because topological sort is not stable...
22:40 TimToady for a particular candidate it is
22:41 putter i kind of liked concept of a declarative signature, with a lexically scoped "advocate", collaborating with other advocates in a lexically scoped selector.
22:41 TimToady you mean like our protos, kinda?
22:42 putter I don't know the current (hmm, or maybe even past) state of protos...
22:42 TimToady I meant "for a particular call profile it's stable"
22:43 TimToady proto is a multi that requires all other multies with the same short name in the lexical scope to have a consistent signature.
22:43 TimToady but it could also enforce a consistent semantic interpretation
22:43 putter signatures having a vocabulary to talk about what "I" do/dont want to be called with relative to other candidates.
22:43 TimToady they could do that
22:43 TimToady in fact one thing I've been wondering is whether semicolons ought to be restricted to protos
22:44 [particle] as in, they're compile-time only?
22:44 TimToady within that lexical scope, yes
22:44 [particle] they register the func in the mmd table
22:45 [particle] er, they're used when registering...
22:45 putter so if one has a dispatch "manager", and signature "representatives", perhaps the core question is their mutual api.
22:45 [particle] i like that, but i don't think semicolon is weighty enough as a token
22:46 TimToady indeed, one can envision various policies, but it's when they come into conflict that things get interesting
22:47 putter so what would it take for package foo to use common-lisp resolution (because, say, it was transliterated from common-lisp) among its own methods, but
22:48 putter use "normal p6" vis methods in some other package.
22:48 TimToady just use semicolons instead of commas.
22:48 TimToady maybe just in the proto, if proto semis propagate
22:49 TimToady and arguably single dispatch much like a proto enforcing ; after the invocant
22:49 putter s/common-lisp/arbitrary-languag​e-with-weird-resolution-scheme/
22:49 TimToady s/much/is much
22:50 TimToady yes, well, we ran into that with ~~, where the right dominates
22:50 TimToady we faked that last week by saying it swaps the args and calls .accepts, but that doesn't solve the general problem
22:50 putter infix:<~~>(Any ;< Any)
22:51 putter ;)
22:51 TimToady I think not
22:52 TimToady much more likely to be a property, I think "is dominant" or some such
22:52 TimToady but it would be a nice thing to avoid
22:53 TimToady biab &
22:53 putter basically, I've seen no sign that there is a "right thing" to do with mmd dispatch.  and there is a lot of existing variety, which I would like to support (to run other languages on p6).  so I'm drawn towards a "build a toolkit" design space "area solution",
22:53 putter rather than "looking for a nice point solution".
22:54 TimToady putter: yes
22:56 TimToady what I want from my point of view is that, by the time the "final" dispatcher gets called, it just gets handed a capture and a list of candidates to call, and maybe a policy for what to do if the next best candidate is plural.
22:58 TimToady the sorting policy for that candidate list needs to be kept separate, and pluggable.
22:59 putter luqui: re find anything?, no.  looking for dependency management software, but without much hope...
23:01 TimToady in fact, I'd go as far as to say that a final dispatcher is just a loop over the candidate list, and doesn't care whether it's doing single dispatch or multiple.
23:01 TimToady but usually people use "dispatcher" to refer to both parts, so maybe we need to choose a better word
23:02 TimToady it's like a find|xargs pipeline
23:02 putter can one "fail" the delegation from within a multi.  ie, "oops, pretend you didnt call me"?
23:02 TimToady yes
23:02 TimToady "next METHOD"
23:03 TimToady assumes the dispatcher loop is labelled METHOD:
23:03 TimToady or "callsame" is currently defined to have those semantics as well
23:04 TimToady so one additional bit of policy that the dispatcher loop gets is whether to stop or keep going by default.
23:04 putter and can one fail a delegation present in ones stack?  so a multi can "delegate"(pun) the "next" test&call?.
23:04 TimToady when you call .*foo it changes the default to keep going.
23:05 TimToady next METHOD doesn't return, callsame does.
23:05 TimToady so callsame can delegate to the "next best" and the postprocess if it likes
23:05 TimToady *then
23:06 TimToady all this assumes a simple looping control structure over a well-defined (though possibly lazy) list of candidates.
23:06 putter but can a multi f() be in progress, which calls a multi g(), whjich decides the running candidate of f just wont do, and "next"'s it.
23:06 TimToady jumping back into a complicated control structure attempting to find the next has to be abstracted into that list.
23:07 TimToady in theory it can, since you can leave() an arbitrary scope looking for an arbitrary label.
23:07 luqui hmm.. the problem I have with most of this is that most functions have return values
23:08 luqui (in my functional style, void subs are pretty much useless)
23:08 TimToady leave takes a return value
23:08 luqui no, with the next METHOD stuff...
23:08 luqui maybe I don't want to just call the next method, I'd like to do something with its return value
23:08 luqui ... if that even makes sense ...
23:08 TimToady that's what callsame is for
23:09 TimToady you want to be a wrapper around the next method, you can
23:09 Limbic_Region joined perl6
23:09 luqui hm. ok.
23:09 * luqui didn't notice when callsame came into existence
23:09 TimToady it's just .call renamed
23:10 TimToady callwith you feed a new argument list
23:10 TimToady callsame assumes the same argument list
23:10 TimToady just refactored for what I perceive are the common uses.
23:10 * putter was parsing callsame as a typo of "call as me"
23:10 * luqui would like to know the common uses...
23:10 luqui I've never had a need for NEXT.pm...
23:11 luqui maybe I should read its docs
23:11 * luqui was reading callsame as "calls a me"
23:11 luqui or something
23:11 TimToady I don't know the common uses yet, which is why unfortunately I have to rely on what I perceive to be the common uses.  :/
23:13 luqui It doesn't really fit my OO world view
23:13 luqui which is probably why it doesn't seem useful to me
23:14 putter can a multi switch/modify the list and do next?
23:14 luqui (when you derive Bar from Foo, and have Bar override one of Foo's methods, I don't think Foo's implementation of that method existing at all in Bar anymore)
23:15 luqui s/think/think of/
23:15 luqui but that's just my interpretation.  if we all had the same oo interpretation, designing an oo language would be a lot easier
23:15 TimToady it's possible that one should only treat submethods that way.
23:15 luqui or rather, more people would like the oo languages that have already been designed :-)
23:16 luqui TimToady, certainly they do.  what is BUILD?
23:16 TimToady putter: in theory, yes.  in practice, you'd probably just issue your own call.
23:17 TimToady luqui: are you agreeing?
23:17 luqui TimToady, hmm, that sentence was very unclear...  let me try again
23:17 luqui TimToady, no, disagree.  if you derive Bar from Foo, and Foo has BUILD, Bar still has Foo's BUILD somewhere inside it
23:18 luqui otherwise it wouldn't get called...
23:18 putter so we have a "dispatch loop", with a sorted list, and which supports next and such.
23:18 TimToady BUILD should always be a submethod
23:18 putter and a "sorter" of candidates.  together forming the "disptacher".
23:18 * luqui knows...
23:19 TimToady and submethods generally have .* semantics rather than . semantics
23:19 putter does that decomposition mis-fit anything we want to do?
23:19 TimToady putter: that's how I'm trying to analyze it.
23:19 luqui oh, you're saying the opposite of what I think you're saying.  submethods are the only things that still exist after you override them?
23:19 TimToady I'm saying .* on a non-submethod might be considered at least erroneous
23:20 luqui interesting
23:20 luqui that makes more sense
23:20 * luqui wonders whether it's really the caller's decision to do .* though
23:20 luqui maybe some methods are just tagged as "call all implementations"
23:20 TimToady that just sets the default on the loop
23:22 Psyche^ joined perl6
23:22 putter the perhaps misnamed "sorter"... collects, perhaps filters, and orders the candidates for some callpoint.
23:22 TimToady and caches that for that particular type profile
23:23 TimToady hopefully coalescing with similar type profiles that produce the same order
23:23 Limbic_Region TimToady - great discussion at the last p6 design meeting on MMD btw
23:23 Limbic_Region not quite finished reading yet
23:24 TimToady oh, is that up now?  good
23:24 putter where?
23:25 Limbic_Region sorry, was still reading
23:25 Limbic_Region chromatic's use.perl journal
23:25 Limbic_Region http://use.perl.org/~chromatic/journal/32133
23:25 lambdabot Title: Journal of chromatic (983)
23:25 putter thanks
23:25 Limbic_Region walang anuman
23:25 * pdcawley is feeling out of touch wondering what the people's coup of parrot was.
23:27 Limbic_Region TimToady - mult. inheritence isn't forbidden with p6 but, as with Java's interfaces, roles makes it less necessary?
23:27 luqui oh.. re: MMD
23:27 putter if instead of a lazy list, we just say the "orderer" is a generator, then multis can kibitz with it.
23:27 * Limbic_Region found a bit of the comic relief in the conversation quite comical
23:27 luqui do we have data that shows that ambiguity is too high?
23:28 luqui I mean, I don't have data that shows otherwise
23:28 luqui but with the "pure mmd" scheme, my conjecture was that it wouldn't be a problem
23:28 putter pdcawley: "coup" of parrot??
23:29 luqui or more precisely: if it is a problem, then you were being vague about what you wanted
23:29 pdcawley Something from the cabal minutes.
23:29 luqui (though, perl is a language that tolerates vagueness)
23:30 luqui but I know that, say, when I'm writing MMD for a game
23:30 luqui many times I forget about a particular pair of objects colliding
23:30 putter so if we have a "collector", a "sorter" generator (formally "orderer"), and a "dispatch loop"....
23:30 luqui and then weird behavior results (because I have to hand-compile my mmd in c++)
23:31 luqui I would like to be told, "uh, you forgot about this one"
23:31 putter can multis have multiple entry points?
23:31 luqui putter, what do you mean?
23:31 putter I guess can a property/attribute/whatever be a sub?
23:32 luqui however, many times if you have a symmetric ambiguity, the semantics are also symmetric
23:32 luqui and you don't want that to be an ambiguity; just pick one, it doesn't matter
23:32 putter trying to bound the design space.  testing "can a mutli candidate's participation in sorting be entirely dynamic?".
23:34 luqui ... ?
23:34 TimToady certainly biological specimens usually just "pick one" and keep going.
23:34 TimToady biological specimens usually being adverse to throwing exceptions.
23:34 putter so the "sorter" talks to multi candidates (what is the real jargon for a single multi instance thing?) by calling some property sub on them.
23:34 TimToady but that needs to be part of the pluggable policy, I think
23:35 putter permitting negotiation, etc.
23:35 luqui well, I'm not sure if a pluggable dispatch policy is quite the right way to do it
23:35 luqui I'm not sure it's the wrong way...
23:35 Psyche^ is now known as Patterner
23:35 luqui but it seems to me like there are several different uses for mmd
23:35 TimToady I don't mean a pluggable policy, but a policy that allows plugins at various decision points
23:36 luqui each one having its own interpretation
23:36 luqui of ambiguities
23:36 luqui okay...
23:36 putter luqui: say on...
23:36 luqui maybe you want a pluggable policy, but I think we might want to get away from the operational definition of ambiguity resolution
23:37 luqui and focus instead on the semantics of the multi
23:37 luqui what kind of thing is this multi doing?
23:37 luqui I have a very strong belief that you should not overload meaning at runtime
23:37 luqui just implementation
23:37 TimToady surely that's an abstraction that cannot be encapsulated in anything simple, or you'd have a simple sub
23:38 luqui but it ought to be something you can encapsulate into a sentence of english
23:38 TimToady don't think you can disentangle implementation from meaning, at least when a lion is chasing you.
23:39 luqui uh... let me be more precise
23:39 TimToady yes, infix:<+> should look something like numeric addition
23:40 TimToady and in general, you'd like fly_the_airplane($x,$y,$z) not to worry about whether the coffee is hot yet.
23:40 luqui differentiating between close a file handle and the closeness of two objects is not mmd's job
23:40 TimToady so a given short name shouldn't be trying to do *contradictory* things
23:40 Limbic_Region .
23:40 Limbic_Region 62
23:40 Limbic_Region sorry,
23:41 Limbic_Region .
23:41 Limbic_Region my daughter says hi
23:41 Limbic_Region 9//8
23:41 Limbic_Region +9//8
23:41 Patterner Tell her "hi" back.
23:41 luqui it should be the same concept
23:41 luqui whatever that means
23:41 Limbic_Region will do
23:42 TimToady the point being, if you "miss" slightly, the airplane still flys
23:42 TimToady flies
23:42 luqui flys is better if you have a function named "fly" :-)
23:42 luqui no.
23:42 putter Limbic_Region: :)
23:42 luqui an object named fly, and you're pluralizing..
23:42 luqui nevermind
23:43 luqui okay, but I don't think "pick one" is the right interpretation
23:43 TimToady maybe the controls are a little sluggish because you're using Rat instead of Num, but...
23:43 TimToady I'm just saying it's the right thing in some circumstances
23:43 luqui well, hm.
23:44 luqui so that's the failsoft angle
23:44 luqui which is important (and neglected in most programming languages)
23:44 TimToady and will probably get to be a slighltly righter thing as more robots are deployed.
23:44 luqui however, pick one isn't the right thing
23:44 luqui when...
23:44 luqui it happens to pick the right one
23:45 luqui until it picks the wrong one long after I have stopped worrying about it
23:45 luqui i.e. the 99 problems euler totient function thing
23:45 TimToady yes, you definitely want your flight simulator to be pickier than your airplane on that.
23:45 TimToady or you want the airplane to be differently picky...
23:46 TimToady and if you can pick up the ambiguity at compile time, so much the better
23:46 luqui the fact that pi(10) = phi(10) made the test pass wasn't failsoft
23:46 luqui it was wrong
23:46 luqui (a stretch of an example)
23:47 TimToady point well taken
23:47 putter (aside - mmd-draft is basically the description of a abstract-but-need-not-be protocol for a "sorter/orderer" to collaborate with multi candidate's "representative" subs (implicitly defined by the signature) in establishing an order)
23:48 TimToady the rubber meets the road when you have to explain to the user why the "wrong" candidate was called.  I'd like that to be as simple as possible, but not simpler.
23:48 TimToady first order answer: it was later in the list.
23:49 TimToady second order answer: here's why it was later in the lsit
23:49 TimToady *list
23:49 luqui well, one nice thing about pure mmd is that you can detect at compile time potential ambiguities
23:49 TimToady third order answer: here was the political process that came up with that decision.
23:50 TimToady mmd-draft is a 3rd-order answer
23:50 luqui well, almost
23:50 luqui you can if they never multiply inherit from two classes you are assuming distinct...
23:51 luqui it could be that you pick one with a warning
23:51 pdcawley Is MI still on the table?
23:51 pdcawley And how much simpler does it get if you say, "No MI, just roles"?
23:51 luqui no simpler
23:52 pdcawley Fairy nuff.
23:52 luqui there is actually very little difference between MI and roles in perl 6
23:52 TimToady if you consider all roles to come "in front of" real classes.
23:53 TimToady but that shouldn't matter much for pure dispatch
23:53 putter "call someone else if they are more specific to the right of semis, or if equally specific to the left and more to the right"
23:53 putter doh
23:54 luqui I think semicolons are mostly stupid
23:54 putter "call someone else if they are more specific to the left of semis, or if equally specific to the left and more to the right"
23:55 TimToady I think semicolons just say, insert me later in the list than anything else with fewer semis at this position.
23:55 putter proposal: create a file with a set of "interesting" delegation cases.  like the commutative one mentioned earlier.  it was repeatedly done in the past, but never that I know of written down.
23:55 putter a file would help address "semicolons are mostly stupid" by showing cases where not.
23:57 putter f1(A,B;X) f2(A;B;X) should be decided by X, not semi.  no?
23:58 putter luqui: re "mostly stupid", elaborate...?
23:59 Limbic_Region putter - if these cases were discussed in the channel, it should be logged
23:59 Limbic_Region and searchable
23:59 * putter failing to find dependency management software.  sorely tempted to roll a quicky.
23:59 TimToady arguably, if they put those functions, they want it based on the semicolon.  If that is not "should be", that's the user's fault for writing it that way.
23:59 luqui sorry, my roommate started talking to me about a game
23:59 * allbery_b suspects that's because dependency management is Hard

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

Perl 6 | Reference Documentation | Rakudo