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