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 |