The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by GammaRay on 31 December 2005.
Debolaz Amnesiac: Yes. 00:19
00:24 frederico joined, Supaplex joined 00:37 waltz left 00:44 mjl69 joined 00:51 scook0 joined 00:59 imperator joined 01:16 imperator left
dduncan is something up with openfoundry that could cause it to be a lot slower (for commits particularly) during the last few days? 01:23
is anyone else experiencing that? 01:24
svnbot6 r8564 | Darren_Duncan++ | r1771@Darren-Duncans-Computer: darrenduncan | 2006-01-02 17:20:52 -0800 01:25
r8564 | Darren_Duncan++ | /ext/Rosetta-Incubator : incremented the Locale::KeyedText versions following its CPAN release today
dduncan not sure if its the server or the network
other network things at my end seem normal enough
Khisanth checked your route to the server? maybe one of the usual routers died and you are taking a different and slower route 01:52
Debolaz copy installable_parrot to /usr/pkg/bin/parrot: No such file or directory 01:53
Gotta love nice senseless errors. :/
leo make installable_parrot or make install in parrot might help - but please note (again) that installing parrot is still experimental, especially with pugs 01:56
01:57 petdance joined
Debolaz leo: Noticed the latter. I fixed pugs compatibility by having the port install src/parrot_config.o though. :) (Which is copied from install_config.o) 01:58
The thing is with my error above though, that installable_parrot actually exists. What I did that seemed to cause the breakage was append "include" to include files in MANIFEST so it the installer would respect --includedir. 01:59
I'll figure it out tomorrow when I have gotten some sleep though. 02:00
leo k - g night 02:01
Debolaz Night.
Alias_ audreyt: ping? 02:25
03:05 justatheory joined 03:16 xah joined 03:20 justatheory joined
dduncan following Khisanth's suggestion, I tried a traceroute to openfoundry 03:26
running it 4 times, I saw hickups at the last leg
lamp.iis.sinica.edu.tw (140.109.17.109) 03:27
from 1/2 to 2/3 of the time, it read about 400-500ms, while other times around 175ms, which is close to the previous link
and the previous link was fairly consistent 03:28
173-174
the previous being ge-3-14.c6r0.tpe.tw.rt.ascc.net (140.109.251.78) 03:29
04:05 justatheory joined 04:09 mjl69 joined 04:14 justatheory joined 05:09 sapper joined 05:12 mjl69 joined
audreyt stevan: you forgot to add Container/*.pil 05:14
so I can't work on them :-/
audreyt goes doing some $job work instead 05:16
tewk audreyt: What is the signature of _Group RuleCapturing -> Token Rule -> [Rule] -> Rule or RuleCapturing -> (Token Rule -> [Rule] -> Rule) 06:07
The pattern match _Group c _ [x] makes me thing the latter. type DynMkMatch r = (Token r -> [r] -> r) I don't understand the the () here. 06:09
s/latter/former/ but the ()'s in the type DynMkMatch make me think the other one. 06:10
clkao yawns 06:15
audreyt its pattern is RuleCapturing -> DynMkMatch Rule 06:25
note that in haskell
a -> (b -> c)
is _exactly_ the same as
a -> b -> c
because of currying
so the two types you list is identical
i.e., "f x y" is exactly the same as "(f x) y" 06:26
Khisanth ?eval [*] 1..171 06:34
evalbot_8564 1241018070217667823424840524103103992616605577501693185388951803611996075221691752992751978120487585576464959501670387052809889858690710767331242032218484364310473577889968548278290754541561964852153468318044293239598173696899657235903947616152278558180061176365108428800000000000000000000000000000000000000000
Khisanth ?eval 171*170
evalbot_8564 29070
tewk ?eval 1..10 06:39
evalbot_8564 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
06:48 joepurl joined
meppl guten mrogen 06:52
audreyt yo meppl 07:08
anr is now known as kanru2
tewk audreyt: Is there a way to run Test/Parser/Rule.hs interactivelly or from the commandline, I though I saw you do something like that the other day. Also is it possible to trace ghc ? 07:10
07:10 gaal left
tewk btw The currying answer, above made perfect sense. 07:10
07:13 Amnesiac joined 07:28 r0nny joined 07:30 lisppaste3 joined 07:31 gaal joined
gaal remoose 07:31
tewk: I just managed to build hat for ghc6, now to see if it works :) 07:32
# www.haskell.org/hat/
07:47 DesreveR joined
gaal audreyt: ping 08:14
audreyt pong (but I'm about to afk) 08:15
gaal ok. do you see anything obviously wrong with:
freezeNode node = do { ptr <- newStablePtr node ; new (castPtr $ castStablePtrToPtr ptr) }
thawNode nodePtr = do { let ptr = castPtr nodePtr ; deRefStablePtr (castPtrToStablePtr ptr) }
deRefStablePtr segfaults, though traces show the pointer is the one I'd frozen. 08:16
I removed the explicit type sig for thawNode, btw; I'm not sure if perhaps deRefStablePtr needs that for its magic 08:17
sorry no: the sig i removed was for freezeNode. 08:19
audreyt the sig is probably irrelevant
gaal OK
audreyt hm, I don't see anything explicitly wrong 08:20
why would you want a castPtr, though?
is it not enough to default nodePtr into the correct type in FFI? 08:21
gaal hmm, I lifted code from readPtr :)
trying w/o it (probably won't make a difference though, right?) 08:22
audreyt ah.
I'm not sure, as FFI is definitely not my forte
maybe ask on glasgow- ?
(or #haskell)
gaal #haskell didn't know 08:23
g- is the mailing list? will try there if I don't figure it out
audreyt yeah, glasgow-haskell-users
best luck -- also feel free tocommit your code 08:24
as long as it compiles, runtime segfault is no problem if it does not interfere with existing code path
gaal the docs for hsc2hs + FFI are a little terse for me :/
y
OK
audreyt and that way I'll be more motivated to debug
gaal :-)
audreyt :)
ok, I gotta run.
bbiab
gaal bye.
08:26 iblechbot joined 09:08 dada joined 09:20 Limbic_Region joined 09:49 nnunley joined
Limbic_Region seen audrey 09:52
jabbot Limbic_Region: I havn't seen audrey, Limbic_Region
Limbic_Region seen autrijus
jabbot Limbic_Region: autrijus was seen 25 days 7 hours 7 minutes 52 seconds ago
Limbic_Region seen audreyt 09:56
jabbot Limbic_Region: audreyt was seen 1 hours 31 minutes 23 seconds ago
09:56 larsen joined 10:14 G2 joined
onob is now known as konobi_ 10:37
audreyt Limbic_Region: hm? 10:50
10:50 elmex joined
Limbic_Region oh nothing, been on vacation in the PI for 3+ weeks and wanted to know what new handle you were using 10:55
Limbic_Region is glad to see you are journaling regularly again and think that the new pic on wikipedia is much more flattering
you should update your perlmonk's acct accordingly - /msg the gods for a name change too 10:56
audreyt maybe I should just register a new perlmonk nick 11:12
thanks re the pic. :-)
11:31 whiteg joined
Limbic_Region no need to register a new nick - when you have the gods rename your account a link from your old handle points to the new one and all of your posts are automagically handled 11:34
audreyt ok... how do I /msg the gods again?
Limbic_Region from the chatterbox - /msg gods please rename my account to <insert name here> because <insert explanation here> 11:35
audreyt done, thanks 11:42
Limbic_Region when is the next hackathon btw? 11:44
or rather - let me make a suggestion for the blog - put up a calendar with upcoming events
audreyt I wonder how do I do that with typepad 11:45
Limbic_Region s/blog/blog or pugs homepage/
audreyt for now, try pugs.blogs.com/pugs/event/
Limbic_Region has read that but couldn't remember where 11:47
11:52 elmex joined 12:01 pdcawley joined
pdcawley seen audreyt 12:02
jabbot pdcawley: audreyt was seen 16 minutes 56 seconds ago
12:05 xinming joined 12:06 xinming joined
audreyt pdcawley: yo 12:11
pdcawley privmsg awaiting your attention.
audreyt replied. 12:12
Limbic_Region oh, I meant to ask audreyt - should the following barf? I think no but it currently does 12:17
?eval for 1... { last if $_ == 4 }
evalbot_8564 pugs: out of memory (requested 1048576 bytes)
audreyt it should not, it currently does, the new runcore's ::List will address this, please give us another week or so :) 12:20
Limbic_Region ok cool 12:33
audreyt yay, I ported Catalyst's dispatcher logic (or maybe something better) to Jifty :)
Limbic_Region will that also make my @infinity = 1...; # work too or is there a limit to when things can be lazy
audreyt Limbic_Region: that should works natively. 12:34
Limbic_Region isn't sure he understands natively in this context
?eval my @infinity = 1...;
evalbot_8564 pugs: out of memory (requested 1048576 bytes)
clkao mmmm 12:35
audreyt the ::Array container, @infinity, should contain one single ::Range object underneath
the ::Range object should have a $.start at 1 and $.end at Inf
that's how it's going to work in the new runcore. :) 12:36
Limbic_Region ok
Limbic_Region will just be patient then
audreyt thanks for your patience :) 12:37
Debolaz Will I break anything fundamental by including parrot_config.o in libparrot? 12:43
audreyt I think not.
(but better check with #parrot in irc.perl.org if you are not sure.) 12:44
Debolaz Hmm.. that's not a bad idea. :)
Also got another weird issue they may clear up, installer refusing to install installable_parrot if I sed -e '/^include/s|$|include/ the MANIFEST files. 12:45
Limbic_Region oh that reminds me about a Parrot/ICU unicode question along with ANSI compliance
Limbic_Region heads over to #parrot
guess not - the server I had hosting CGI::IRC to get to #parrot is offline 12:46
13:02 chris2 joined 13:11 iblechbot joined
Limbic_Region oh, cool beaners on the Jifty dispatcher audreyt - I hear Jifty is a real contender to Rails 13:14
obra Really? Where'd you hear that? 13:15
chris2 does perl6 have something like ruby's "p" or "obj.inspect"? 13:17
Limbic_Region obra - I believe it was a PerlMonks entry - let me see if I can find it 13:19
wolverian ?eval 1.perl
evalbot_8564 "1"
wolverian chris2, I think that's it, currently
Limbic_Region obra - perlmonks.org/index.pl?node_id=520196 13:20
see the first response
chris2 wolverian: thanks!
wolverian you're welcome
xinming audreyt: can rule now be used in pugs?
audreyt xinming: it can be used for some time now 13:21
via PGE/parrot
xinming audreyt: hmm, not in pugs shell? 13:22
?eval my $a = rule { . }; $a ~~ "test"
evalbot_8564 Match.new( ok => bool::true, from => 0, to => 1, str => "t", sub_pos => (), sub_named => {} )
xinming hmm, In pugs shell, this line will cause segfault 13:23
xinming is out for supper.
bbl
13:25 anatolyv joined 13:39 hlen joined, kanru joined 14:08 Qiang joined 14:41 Debolaz joined
stevan audreyt: ping 14:42
audreyt stevan: yo
stevan obra: chromatic said in his Year in Perl that Jifty might leave Rails in the dust
audreyt: see Bootstrap/Container/*.pil :) 14:43
audreyt discovers the svk checkout is subtly broken
heh. sorry :)
but I did this meanwhile (joint design with obra) -- I think you'll like it 14:44
perlcabal.org/~autrijus/tmp/Dispatcher.html
(in jifty trunk now)
deploying to $job as we speak
clkao (?!)
svk checkout borken? 14:45
audreyt clkao: apparently I needed a "revert -R" to get new Bootstrap/Container/*.pil
14:46 Limbic_Region joined
audreyt tried to reproduce, can't, weird. 14:46
clkao weird
1.06?
audreyt no, 1.0901 trunk 14:47
stevan audreyt++ obra++ # very nice dispatcher :)
audreyt :D
14:47 justatheory joined
audreyt I'd like to support proper subclassing next 14:48
14:48 justatheory joined
audreyt so MyApp::Dispatcher::Blog handles the "in 'blog'" by default 14:48
with :Private and :Local propagation attributes 14:49
sounds familiar? :)
stevan audreyt: :)
audreyt: $work for today is going to be reading over all the Jifty docs/source
audreyt /join #jifty then 14:50
stevan heading there right now
15:07 ezraburgh joined 15:15 petdance joined 15:22 Eimi joined 15:30 lisppaste3 joined 15:41 sahadev joined, kanru joined
stevan audreyt: so thoughts on the containers 15:54
I was thinking that the immutable version of Array should acutally be List 15:55
(sort of)
audreyt yeah 15:56
Array I think delegates to a finite sequence of underlying list-ish things
Seq and Range, in particular
stevan ok
audreyt which are value types 15:57
stevan hmmm, so are we just using the autoboxed Seq?
audreyt i.e. immutable among themselves
that can work, yes
stevan ok
audreyt (based on my understanding about fglock's p5-based work) 15:58
which I think makes a lot of sense
oh, aside from Seq and Range, need some sort of Generator too
but because Array hides all of them, it's okay
stevan ok 15:59
I will look over fglocks stuff again
audreyt I think it's summarized (somewhat haphazardly) in docs/notes/laziness.txt 16:00
stevan I will also add some methods to the autoboxed ::Seq
audreyt cool
stevan actually I will make a ::Seq role instead
Debolaz Aight, parrot port is more or less complete now. www.debolaz.com/temp/parrot.tar.gz for those who has pkgsrc. 16:02
audreyt hm, how do I install pkgsrc for freebsd? 16:04
(and why would I want to do that?)
<- running freebsd 6-stable
16:07 vel__ joined
Debolaz audreyt: Well, as for how to install it, it's documented on www.pkgsrc.org/. I guess why is a matter of personal preference.. it's in my personal opinion superior to ports, a lot easier to manage, etc. But again, my personal opinion, there's no big reason to switch if you're on FreeBSD. :) 16:08
audreyt ok :) 16:10
audreyt puts it on her infinite, self-recursive, lazily evaluated list of things to try
justatheory seen pdcawley
jabbot justatheory: pdcawley was seen 3 hours 58 minutes 33 seconds ago
pdcawley looks up.
justatheory "The name that left was PIR" 16:11
pdcawley Yeah.
IMC was left bleeding on the floor.
justatheory Should that be "that was left", since you then kick sand in imc's face?
Limbic_Region no justatheory
two names enter, one name leaves
the name that left was PIR
pdcawley Tcha! Get your pop culcha references right.
justatheory D'oh!
sorry, I suck.
pdcawley But no harm in clarifying on the blog version.
You won't be the only one I'm sure.
Limbic_Region thunderdome 16:12
justatheory well, it becomes clear in the rest of the sentence
Limbic_Region beyond even
justatheory I haven't seen that movie in decades.
No, wait, I never saw it, only Mad Max.
pdcawley reads through again... Nah... 'the name that was left was pir' is butt ugly English. 16:13
But it does have a semicolon now.
justatheory Bunglish.
" a properly documented Pugs, and the Perl 6" 16:15
then?
pdcawley: That's a great photo on your blog. 16:19
pdcawley Ta.
16:34 marmic joined
pdcawley Dave Adler was the man with my camera. 16:59
16:59 iblechbot joined
audreyt waves and goes to sleep & 17:16
0nn is now known as DesreveR 17:23
17:27 justatheory joined 17:45 G2 joined 17:47 mjl69_ joined, luqui joined 17:59 Shachaf joined 18:25 cm joined 18:46 justatheory joined 18:48 justatheory joined 18:49 DaGo joined 19:01 mjl69 joined 19:14 xinming joined
audreyt stevan: pniing 19:32
s/ni//
stevan: A quick question. in PILN, ::Pair is actually what Perl6's ::Pair.meta is 19:33
in Perl6, ::Pair.meta.isa(::Class), but ::Pair.isa(::Pair).
stevan: which is fine, and can be handled in PIL2->PILN compiler
stevan: but how do you think we should represent ::Pair in PILN? i.e. what does ::Pair compile to? 19:34
a NativeObj with o_class set to clsPair, but with no o_repr ?
i.e. all prim call on it fails?
i.e. ::Pair`get_attr('$!k') will throw an exception? 19:35
is that sane, or am I actually talking dreamspeak (which is likely)? 19:36
audreyt goes back to sleep
19:40 stevan_ joined
obra stevan_: ou just missed a braindump from audrey 19:40
you 19:41
19:43 frederico joined 20:21 nothingmuch joined
nothingmuch hola 20:22
20:23 avar joined 20:30 justatheory joined 20:37 the_ez joined 20:38 xinming joined
teva is now known as stevan_ 20:44
stevan obra: thanks for the heads up
stevan reads the log
audreyt: I am not sure I understand that you mean, does ::Pair really need to be anything other than just an normal object? 20:46
::Pair`get_attr('$!k') will die , but ::Pair.new({})`get_attr('$!k') will be ok 20:47
stevan is guessing audreyt is having some very strange dreams
20:48 SamB joined
svnbot6 r8565 | tewk++ | Outstanding cleanup 21:04
21:16 dduncan joined
webmind hmmm 21:17
I'm trying to compile pugs
and suddenly the machine is unreachable
actually in the make Makefile.pl 21:18
er
perl Makefile.pl part
is this that heavy or ?
gaal audreyt: ping 21:24
luqui webmind, I doubt that that phase would do much... 21:25
how much ram do you have?
webmind 1gb
luqui (because that phase does run ghc, which is rather ram heavy)
okay, you should be fine
webmind 2.4ghz p4
luqui it's probably something else
pasteling "gaal" at 192.115.25.249 pasted "undef handling patch for YAML::Syck" (61 lines, 1.8K) at sial.org/pbot/15257 21:26
webmind waqs also checking out parrot
and running apt
but doesn't sound heavy
21:26 ezraburgh joined
luqui well even heavy cpu lifting shouldn't cause the machine to be unreachable, should it? 21:27
webmind depends
but I can still ping it
just ssh doesn't work any more
luqui this was with the latest pugs?
webmind I can connect to port 80
but requests fail
yes 21:28
luqui sees if something went wrong in the makefile
webmind I can see more info when I get home
but currently still at the meeting
luqui do you know how far the makefile got before the connection died? 21:29
audreyt gaal: please mail the Patch to my inbox :)
gaal audreyt: sure :)
webmind luqui, didn't get any output from it
so no
luqui not even "*** Probing configuration" 21:31
?
not even "*** Probing configuration"?
(ugh, my connection dies every 20 minutes for about 1 minute)
(comcast sucks)
webmind nope
luqui hmmm.. that sounds like a different problem then 21:32
webmind don't think so
hmmm :(
sounds bad
hope the HD is ok
gaal audreyt: sent
luqui I mean, Makefile.PL doesn't do anything before it prints that...
webmind ok
maybe it's the disk then
audreyt gaal: danke
webmind certainly hope it's not 21:33
luqui hope not. maybe it was a coincidental occurrence
webmind uhuh
luqui anyway, pop back on here when you find out more
webmind btw, is there a howto somewhere to make deb'sfor pugs ?
will do
gaal audreyt: hash emmitting is pretty broken... I can add a test or two at least.
luqui hmmm... who was doing that before?
gaal s/mm/m/
luqui anyone remember who was making the deb distro for pugs? 21:34
audreyt hm. I couldn't sleep, so I finally typed down my design notes since November into the latest p6c/journal post.
luqui rafl?
gaal luqui: rafl++
audreyt stevan: S12: "Taken as an object, a class represents all of the possible values of its type, and the class object can thus be used as a proxy for any "real" object of that type in calculating what a generic object of that type can do. The class object is an Object, but it is not a Class, because there is no mandatory Class class in Perl 6. We wish to support both class-based and prototype-based OO programming. So all metaprogramming is done through the cu
luqui righto, webmind, you should talk to rafl
webmind rafl is maintainer for debian yes 21:35
luqui I don't think there is a howto anywhere
but he could help write one I presume
webmind hmk
webmind pokes rafl
gaal webmind: there is a debian/ you can look at 21:36
audreyt stevan: so it seems to me that, on p6 level, if %hash.keys can be called, so can ::Hash.keys (although it will probably fail, but the point is that the dispatcher dispatchs ::Hash the same way as %hash.)
luqui audreyt, man that paragraph is unclear
webmind gaal, what's that ?
ah
gaal specification for the dpkg 21:37
for the .deb that is
webmind ah
hm
audreyt stevan: and also if there is a ::Hash.new(), so is there a %hash.new().
this is very p5esque, where a class is just a string that has no instance data but dispatches the same as a blessed reference. 21:38
webmind ok,will check that when I'm home aswell then.. thanks
rafl luqui: Here I am.
luqui symlinks himself to webmind 21:39
rafl webmind: ping
luqui: I just locked for the first highlight. Sorry.
luqui np
audreyt also S12: "Class methods are just methods that can take a class as their invocant." 21:40
stevan: I _think_ that is what larry means. if it turns out to be a strange dream, all the better, but I'm planning for the worst. (also cf. the dereference/assignment post.)
luqui figures that if classes are those generic objecty things
then class methods are nothing but methods that don't refer to any members
audreyt yes, I think that is what larry's idea is
luqui thinks that that's what Larry insanely means
audreyt it's a bit more well-typed than p5 21:41
luqui uh... how?
audreyt but has the same operational semantic as p5
er, you can't use a string as a class anymore.
luqui oh right
audreyt and there's no barewords, so class literals are well typed.
so you can very well write a typechecker.
and this is how IO, Self, JavaScript has been working for ages anyway 21:42
luqui I wonder if we can determine at compile time whether a given method can be called on the class
and then die before even entering the offending method if not
audreyt yeah, that's what I mean by "write a typechecker"
luqui okay then
Debolaz Parrot 0.4.0 is committed to pkgsrc. :)
audreyt Debolaz++
luqui not possible in general to determine whether or not it is allowed 21:43
audreyt stevan: so... ::Int.isa(::Class) would be false under this scheme
luqui but we can default to "is" when we can't determine
audreyt luqui: hm? if you mention any $.foo $!bar then it's disallowed
everything else is allowed
luqui what about calling methods on self? 21:44
where those methods aren't allowed?
audreyt if you can early-bind them, then of course errors propagate
webmind rafl, do you know, or can you provide something like an howto on how to make pugs debs ?
audreyt late-bound methods are, as usual, deferred until runtime.
luqui audreyt, okay, fair enough. so we only look at "leaf offending" methods in general
rafl webmind: I do debs for every release. You mean for svn snapshots?
audreyt luqui: yeah, but everything becomes leaf under use optimize :classes<close finalize>; 21:45
webmind from svn snapshots yes
but it's for ubuntu
rafl Doesn't fakeroot debian/rules binary work?
webmind no idea
luqui audreyt, nope.
rafl webmind: Try it, please.
webmind currently can't check either.. cos the box died
I will
luqui equivalent to the halting problem.
audreyt luqui: huh? 21:46
rafl webmind: Maybe you'll need to alter debian/changelog for the ubuntu release names if you want to upload it there.
webmind: Don't mind if it's only for personal use.
audreyt if (0|1).pick { self.call_bad_method }
that should be statically rejected.
luqui method maybeoffender() { my $var = halting_computation() ?? $?SELF !! MyClass.new; $var.offender() }
rafl webmind: My stable pugs packages seem to be migrated to ubuntu anyway.
audreyt even if it's if (0|0).pick
luqui should that be? 21:47
audreyt surely yes.
if False then 3 (3 3) else 1;
luqui what if I mentioned $?SELF in a very roundabout way
audreyt try writing that in GHC.
webmind rafl, ok
luqui hmm
rafl goes to bed
luqui okay, I see what you mean
rafl Bye!
audreyt all lines of branch needs to be well-typed 21:48
luqui was having a static-types-don't-exist moment
:-)
audreyt heh :)
luqui oh, but you were talking about :classes<close finalize>
stevan is not a fan of Larry's class model
audreyt alright, I think I can finally rest now that the dense incomprehensible container type thing is written
luqui isn't either
stevan hey guys/gals
luqui courtseys 21:49
gaal yo stevan
audreyt can see its merit, but thinks it makes a horrible underlying calculus
stevan audreyt: where is it at?
audreyt (which is why I think PILN (and PIR for that matter) should _not_ be changed; just the compilation strategies to them)
stevan audreyt: agreed,.. i think we should all chip in and get Larry a copy of the Art of MOP :)
audreyt stevan: pugs.blogs.com/pugs/2006/01/dereference_and.html
stevan audreyt: yes, I agree,.. I tried to plan the MOP so that Larry's model could desugar into it 21:50
luqui doesn't think that is a contextifier 21:52
stevan beats luqui about the head with a \
luqui i.e. I don't think that \\$x === \$x 21:53
stevan what does proto mean again?
21:53 Amnesiac joined
luqui it just gives an overall signature to a multi 21:53
stevan overall?
nothingmuch i need to quit my job... the great out doors calls me
luqui proto foo(...) {...} multi foo(type1) {...} multi foo(type2) {...}
nothingmuch or rather, i need to quit computers
luqui or get a laptop with good outdoor lighting ;-) 21:54
luqui hasn't found one that works well outside yet
stevan, it also sets a default implementation for a set of multis
stevan luqui: so proto is kind of like the "top" for multis?
luqui yeah
stevan so I could set a ceiling then 21:55
luqui ?
stevan is trying to think of an example
luqui you know how in haskell you say like foo :: typesig; foo pat1 = impl1; foo pat2 = impl2 21:56
stevan yes
luqui the proto serves as the typesig, and the foo _ = impl at the end
stevan ok
I think I get it
luqui but multis allow you to distribute the rest of the implementations all over your program
unlike in haskell 21:57
stevan can you write multis without proto?
does one automagically get created?
audreyt (actually, multis are quite like typeclasses)
luqui: so you think prefix:\ has this type?
multi prefix:<\> (Ref ::T is rw) --> (Ref of ::T) {...}
luqui right 21:58
I mean right to typeclasses
audreyt instead of the one I gave
multi prefix:<\> (Ref ::T is rw) --> ::T {...}
luqui Yeah, I think so...
probably good to check with larry though
(I'm judging by his comment <luqui> "how do you take a reference to a reference?" <lwall> with the new "\\" operator :-) )
but that was six months back or more 21:59
audreyt actually I've just been thinking about prefix:<\\>.
luqui hmm?
audreyt an actual new \\ operator.
luqui what would it do?
audreyt that has the type you want
luqui oh
what does \ do?
audreyt multi prefix:<\\> (Ref ::T is rw) --> (Ref of (Ref of ::T))
luqui put stuff in referential contexT?
audreyt yes.
luqui almost short for scalar() 22:00
audreyt because you'd think \@foo is a value
nothingmuch luqui: the point is to not be laptopy
audreyt but it actually takes container methods
(\@foo).elems
nothingmuch no shower for several days
eat weird food
directly from the pot
luqui so, basically like normal, except outside :-)
audreyt and it's been handwaved as "autoderef" for some time now
nothingmuch sleep in a tent
that kind of no-laptop 22:01
gaal misses that kind of outdoors also
nothingmuch: wanna go to sinai sometime?
luqui audreyt, by "\@foo is a value" you mean?
nothingmuch for a hike? or the beach?
stevan nothingmuch: I give you 2 weeks before you make a laptop for yourself out of rocks and twigs
luqui ll
audreyt luqui: meaning that it can't be assigned to.
gaal nothingmuch: mountains, duh
audreyt it doesn't take the infix:<=> method 22:02
nothingmuch stevan: it's the only addiction i haven't beaten totally
luqui s/(.)(.)/$1o$2/
nothingmuch i've managed to cut TV, sugar, cigarettes, coffee, etc for weeks on end
cold turkey
luqui audreyt, oh...
nothingmuch whenever I suspected i may be too involved
luqui audreyt, why?
nothingmuch but computers - they are like cutting social life
except it has string attached
gaal: gladly
=) 22:03
audreyt \$x = 3; # same as "$x=3"
nothingmuch i'm trying to push a friend into the yam-el-yam hike
audreyt \@x = 4; # same as "@x=4"
like that?
luqui it seems to me, and this may be muddy wrong thinking, that \@foo = $x is the same as @foo := $x
nothingmuch i hope we can do it in 3 days
transportation is the biggest issue
gaal nothingmuch: more than 3, and not in this season anyway. despite this being january, there are places where it's cold :-)
audreyt luqui: \$x = \$y, you mean 22:04
gaal anymoose, I just comitted the preliminary .yaml stuff, and am now going to bed. have a moose, all!
audreyt (rhs of = is not rw'ed)
nothingmuch i heard 4 to 3.5 as the benchmark for normal people
audreyt gaal: woot!
luqui thinks he means just what he said
luqui isn't sure what audreyt meant
gaal audreyt: it's not like it works or anything :-)
audreyt luqui: ok. you said that \$x=3 means $x:=3
nothingmuch got another idea for a long 2+ night hike? 22:05
svnbot6 r8566 | gaal++ | * beginning of .yaml emitter. "string".yaml.say segfaults, but hey,
r8566 | gaal++ | it's a start :)
luqui audreyt, no, I said \@x = 3 means @x := 3
gaal audreyt: but once we figure out that segfault the rest shoudl be easy.
luqui the sigil might be important
.... but I don't think so
audreyt luqui: I'm very much lost then. how is it important?
er.
gaal nothingmuch: south may be dangerous (flash floods). galil maybe? anyway I'm off; later :-)
zZZ & 22:06
nothingmuch i don't mind the cold in the day time, or at night (slept in pretty cold conditions in the US - so that's OK), but food making and getting packed in the morning is hella-tough when cold
audreyt see, the rhs of infix:<=> is not "rw"; a FETCH (or value()) is applied to it
nothingmuch yam-el-yam is galil
audreyt that is the definition of rhs
gaal .yaml .yam
audreyt so saying that \$x=$y magically takes variable($y)
nothingmuch did you think med-to-dead? or med-to-galilee?
audreyt is quite strange.
I can't seem to think a way to make it work. 22:07
22:07 ezraburgh left
audreyt \$x=$y; $x = 5; # $y can't become 5 22:07
try putting anything else in \$x's position, you can't get that 22:08
luqui no, wait
luqui goes off for a minute to figure out why he thinks that
bbiab
audreyt, okay, it's because we've been saying things like @a := [1,2,3]
which binds the innards of @a to [1,2,3], and of course makes it return that same [1,2,3] when you take a reference to @a
I'm not sure what it means for scalars
and I'm not sure that @a := [1,2,3] is correct, but if it is, then that's what \@a = [1,2,3] should mean
did you get that? 22:09
I was 20-minute clockwork disconnected while I was writing that
22:10 petdance left
luqui audreyt, poke, poke 22:12
audreyt pong 22:13
luqui okay good, I'm not still disconnected
audreyt @a.infix:<:=>([1,2,3])
(oversimplyifying the args/sigs part, because that's going to desugar to it anyway) 22:14
so, this calls a method on the container object on the pad as '@a'
the container object discards its innards
and use the same underlying representation (p6opaque or otherwise) as [1,2,3] 22:15
very straightforward
luqui ahh, \@a = .. isn't the same as \$x = ..; it's the same as \variable($x) = ..
audreyt yes, because method calls on scalars always valueify it first
except when the method is rw 22:16
as prefix:<\> is.
luqui hmm..
audreyt s/is rw/has the invocant declared as rw/
luqui understands
so do you agree that @a := [1,2,3] should mean the same thing as \@a = [1,2,3], if \@a = [1,2,3] means anything? 22:17
audreyt I don't know if ::Ref.infix:<=> should be defined.
because 22:18
(\@a).end
luqui yeah, but I'm asking, if it were, then that's what it should mean for an array
audreyt is the same as @a.end
and having \@a.infix:<=> to be _not_ the same as @a.infix:<=>
is violating the onelevel autoderef semantic.
luqui but infix:<=> has an rw invocant
audreyt so does .push
yet (\@a).push means the same as @a.push. 22:19
luqui thinks
audreyt I think you have a point; prefix:<\>, even on container types, should return a plain ::Ref that is a simple container that delegates methods back to the underlying container (but only for one level) 22:20
I think it should not introduce anything else.
i.e. either forbid or passthru.
(for one level, again)
luqui doesn't like delegation
audreyt but that's what autoderef is.
luqui doesn't like autoderef... 22:21
audreyt i.e., what (\@a).push is doing
heh, but it's what's specced ;)
luqui and I think there's a way to think about it so that the same thing happens, but no autoderef is going on
audreyt and I do think $a[0]=1 is kinda good.
luqui same semantics, different mental model
audreyt ah, which is why I proposed \ as contextifier.
22:21 marmic joined
audreyt but you raised the \\\\1 point that I don't have an answer to. 22:21
so it's now back to simple ::Ref. 22:22
(with delegation.)
luqui I think I'll go take a walk to ponder
my mind isn't terribly clear, and walks work wonders
audreyt cool -- if you came up with anything, reply on p6c or so :)
good night. :)
luqui good night
Debolaz Amnesiac: There? 22:23
Amnesiac Debolaz, it's been a while
Debolaz Amnesiac: Yes. #freebsdhelp, right?
Amnesiac hahaha yes :P 22:24
last time we talked you were using SiLC
Debolaz I have the memory of a very small mammal with a very small attention span. :)
Amnesiac hahaha
Debolaz Yeah, I gave that up when it became clear that the author never intended for silc to become widespread.
Amnesiac I just tried it, never used it for real 22:25
Debolaz The problem was that he just wants to make money off of it. The standard library is GPL, so it's impossible for any non-GPL application to use silc without having to reimplement everything for a very complex protocol. 22:26
Amnesiac what do you do now? 22:27
Debolaz Not much. Doing some smaller projects now and then, like porting parrot to pkgsrc. 22:28
svnbot6 r8567 | stevan++ | PIL/Native/Bootstrap/Container/Array.pil
r8567 | stevan++ | - added &reduce and &zip (only for same sized arrays for now)
r8567 | stevan++ | - some tests too
Amnesiac Debolaz, nice thing, you don't hang at #freebsdhelp anymore right? 22:30
Debolaz No. I still use FreeBSD though. 22:31
Amnesiac I idle in EFNET most of the time, and yep, still using FreeBSD
Debolaz But I have taken an interest in DragonFlyBSD.
Amnesiac doesn't DragonFlyBSD is based in 4.x? 22:33
Debolaz Yes, it's based on the FreeBSD 4.x codebase.
Amnesiac don't you find that a bit... uhm... "old"?
lots of latest packages don't compile on 4.x codebase in FreeBSD 22:34
Debolaz Well, DragonFlyBSD is changing from ports to pkgsrc now actually to solve the package incompatibility issue.
Amnesiac refresh me, pkgsrc is from NetBSD? 22:35
Debolaz As for the "old" part, I don't think so. FreeBSD 4 is still a good operating system for uniprocessor machines. The one of the two main reasons for the fork was how FreeBSD 5 solved the SMP scaling issue. DragonFlyBSD has a very different solution to SMP scalability. 22:36
Yes, pkgsrc is from NetBSD, but pkgsrc intends to be a framework for building packages that works on many systems, not just NetBSD. 22:37
I use it on my FreeBSD machine.
Amnesiac I see
not based in Debian pkgs right? :P 22:38
Debolaz No. :)
Amnesiac good then
Debolaz Think of it as ports on steroids.
It's much more practical to manage imho.
Amnesiac sounds good, I want to try FreeBSD 6, but I need to backup my data first and I don't have HDD space right now... 22:39
Debolaz What version are you currently on?
Amnesiac 4.11 and 5.4 22:41
Debolaz Think of FreeBSD 6 as 5.5. :)
There's really nothing fundamentally new about it.
Unlike FreeBSD 5 compared to 4.
Amnesiac at least the 5.x guys fixed the old problem with sound cards ( for vchans ) 22:42
that was bothering me when 5.x was just released
Debolaz I've taken it on me as a personal goal to have full and up to date perl 6 support in pkgsrc. Parrot was just finished today. 22:44
Amnesiac so you're using NetBSD now? 22:45
Debolaz [23:37] <Debolaz> I use it on my FreeBSD machine.
:)
leo Debolaz++ # thanks for the parrot part
Amnesiac Debolaz, very nice
Debolaz Amnesiac: As I said, pkgsrc is a lot more pleasant to work with than ports. 22:46
Amnesiac: Both as user and maintainer.
leo: :)
Amnesiac looking at pkgsrc info 22:48
leo Debolaz: are any patches needed for parrot src tree? 22:51
Debolaz I'm going to get pugs into pkgsrc too, the port is mostly done but I need to resolve what to do with haskell since the version currently in pkgsrc only supports NetBSD. I've made it run with FreeBSD, but it ain't my port, so I gotta talk with the maintainer.
leo: You can see the patches I made at cvsweb.netbsd.org/bsdweb.cgi/pkgsrc...t/patches/ 22:52
They are mostly to get stuff into more correct locations. 22:53
leo I'll forward that to p6i - thanks
Debolaz The only one that's really needed to make things compile is patch-ac, but patch-ad might be of some interest. 22:56
patch-ac is due to the fact that combining -lc_r with any other threading library on FreeBSD 6 will cause stuff to break. patch-ad is simply making sure shared applications aren't installed with _shared as suffix. :) 22:59
leo Debolaz: I've sent the message to p6i - please reply and explain there - thanks 23:00
23:02 frodo72 joined
leo rafl: can you please review above pkgsrc patches for debiaan compat - thanks 23:03
debian compat too ;) 23:04
Amnesiac debiaan++ 23:05
Debolaz Hrmm.. but I don't use usenet. :) 23:08
leo Debolaz: mailto:perl6-internals@perl.org 23:12
e.g. in docs/intro.pod or docs/submissions.pod 23:13
webmind ok, machine crashed.. no idea what it was
luqui that's good to hear that it wasn't the HD :-) 23:16
stevan luqui: back from you walk?
luqui yep 23:17
got some good stuff figured out
writing a docs/notes entry on it
stevan good :)
cool
when you are done ... please see my recent p6c post
I sent that list o' types i promised
luqui neato
stevan I think I am probably completely wrong/crazy/on-crack, but I wanted to start the discussion off at least :) 23:18
it would be nice to have something official I could build upon
s/build upon/build PIL2 runcore upon/
svnbot6 r8568 | stevan++ | PIL/Native/Bootstrap/Container/Array.pil 23:20
r8568 | stevan++ | - added &keys, &values, &kv and &pairs
r8568 | stevan++ | - added tests for these too
stevan I would be nice to start building up a reasonable class/roles heirarchy for PIL2, and I want to be sure it does not deviate too much from what is expected in Perl 6
stevan dinner & # be back in a few hours probably 23:21
Debolaz leo: groups.google.com is nice to have. :) 23:25
webmind luqui, indeed
leo Debolaz: yup it's covered there too 23:26
Debolaz leo: I posted a reply to your post anyway. It should cover the "why"'s. 23:27
leo thanks 23:29
23:30 lisppaste3 joined 23:43 frederico joined