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 | dev.pugscode.org/
Set by putter on 11 February 2007.
00:05 mdiep joined 00:08 weinig|away is now known as weinig_ 00:10 weinig_ is now known as weinig 00:24 Alias__ joined 00:34 Alias__ joined 00:40 explorer joined 00:42 explorer joined 00:48 explorer joined 00:50 Loccccs joined 01:02 Minidin joined
TimToady_ @tell audreyt what would STR() do that Str() doesn't do already? Also ITEM and LIST are already spelled $() and @(), so what would you do with %() and @@()? Seems like this is just coming up with different names for the same thing. 01:04
lambdabot Consider it noted.
TimToady_ @tell audreyt along the same lines, far be it for me to reject something just because Python does it, but if we're going to do name mangling, I'd rather it use a more P6ish "foo:bar<HOW>" mangling of some sort where we get some proper delimiters on the mapped part. 01:06
lambdabot Consider it noted.
TimToady_ @tell audreyt meta:HOW might be suffient as short for meta:sym<HOW>, for instance 01:07
lambdabot Consider it noted.
TimToady_ @tell audreyt and that has the added benefit of being outside the user's ordinary identifier space 01:08
lambdabot Consider it noted.
Alias__ TimToady: For what it's worth, I'm not a big fan of uppercaseism 01:12
Not referencing anything in particular by that, just noticing a general flavour of uppercasism starting to appear in the weekly summaries 01:13
tene Alias__: explain "uppercasism"? 01:16
01:18 drbean joined 01:19 amnesiac joined
TimToady_ in general, uppercase in P6 indicates something that is called magically. 01:20
so maybe it just means we have more things being called magically
and if it's not something being called automatically, perhaps it's a design mistake. 01:22
would need to see examples
01:23 Alias__ joined
TimToady_ can't think of any uppercaseism that hasn't been in the design for some time, but I'm not good at accessing my memory for examples. 01:23
01:24 Khisanth joined
TimToady_ or are you just referring to SHOUTING? 01:25
I guess Z and X are uppercase and not called automatically, but they're using uppercase to stand out from the list on either side. 01:26
tene Alias__: explain "uppercasism"? 01:28
Juerd TimToady_: In my experience, in between expressions, uppercase letters stand out less. 01:33
Because they're the same height as (), @, $, etc 01:34
(foo, bar) Z @quux
(foo, bar) z @quux
Though I personally still don't see any reason to have or use Z anyway :)
Juerd doesn't know X yet.
TimToady_ don't need the parens on the left, so it's just foo, bar Z @quux 01:35
most of the time it's @foo Z @bar
X is the old XX
Alias__ TimToady: Well, for example, that XX thing
TimToady_ there is no XX 01:36
Alias__ is a bit behind on the updates :)
01:36 BooK_ joined
TimToady_ there's still X*X as a metaoperator 01:36
[particle] y as an operator SUX. Y is much better, imo. 01:37
TimToady_ there is no Y either. :)
[particle] perhaps i should have used spoon and SPOON
TimToady_ though I would be surprised if the lambdacamels snuck in in as a shorter way to write $?BLOCK
[particle] if you're going to have ascii chars as operators, uppercase is better, is what i'm trying to say 01:38
*word chars
TimToady_ we get away with x because people are used to reading it symbolically from grade school
and it shows up frequently in 2x4 and such 01:39
01:39 Minidin joined
Alias__ uppercase is a bit less huffman friendly though isn't it? In that we have to use two keys? 01:40
(sorry, being called away for lunch)
TimToady_ "huffman friendly" implies both that common things should be easier and that uncommon things should be harder. It specifically doesn't mean that everything should be shorter, which is not possible. 01:42
and in any case, I'm much more worried about how it looks than how hard it is to type 01:43
one reads it many more times than one types it, after all
[particle] that's promising 01:44
perl 5 := write only ; perl 6 := write once
tene unless it's delibirately obfuscated, I rarely have trouble reading perl5 code 01:45
"write-only" generally is just FUD, IME
[particle] it's a badge of honor for some
allbery_b "write-only" is mostly FUD, but there are some stunning examples of well-nigh unreadable code on CPAN :/
TimToady_ Perl 5 was pretty good at encouraging good huffman coding, but Perl 6 will be better, I think. 01:46
avar this is a bit late in the design but twigils on introspective methods as well as variables as to not pollute namespaces would be neato:)
$obj.?methods; 01:47
>:)
TimToady_ um that's exactly waht $obj.^methods is currently, I believe
tene ?eval vv('hello').^methods
01:47 evalbot_r15464 is now known as evalbot_r15480
evalbot_r15480 Error: ā¤Unexpected "^"ā¤expecting ".", "\187", ">>", "=", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript 01:47
avar looks at the syn to see what SHOUTING is used for then:) 01:48
[particle] HOW, WHERE, WHAT, etc
and $?BLOCK $?SUB...
i like those just fine
TimToady_ I consider them encouragement to give your lambdas better names. 01:49
[particle] the first are interrogatives (for introspection.)
WHERE_WERE_YOU_ON_THE_NIGHT_OF_THE_TWENTY_FIFTH? is best if shouted 01:50
it's more dramatic that way :)
avar map { uc } qw( what which who where how when why);
TimToady_ needs a bright lamp shining in your face too
?eval map { .uc }, < what which who where how when why > 01:51
evalbot_r15480 ("WHAT", "WHICH", "WHO", "WHERE", "HOW", "WHEN", "WHY")
TimToady_ @tell audreyt and HOW can certainly not be dispatched as an ordinary __HOW__ method since the whole point of HOW is to decide which kind of dispatcher to use. If WHAT maps to something like .HOW.deep:<WHAT> that's fine though. 01:56
lambdabot Consider it noted.
02:20 dmq joined
rhr what's the difference between give and leave? Was give renamed leave? 02:20
TimToady_ leave was only renamed to "give" for about a day before we reverted it. 02:24
but it's form changed to Label.leave(retval)
rhr OK, there are still some references to give in S02 and S06 02:29
02:29 ayrnieu joined 02:33 yip joined 02:48 putter joined 02:59 qmole_ joined
dduncan ping Juerd 03:00
I didn't talk to you since before I added some ext/ stuff on your behalf.
Did you have a chance to look at that yet, and see if it was like what you proposed? 03:01
2 weeks ago
specbot6 r14311 | larry++ | the change back from .give to .leave was incomplete as noted by rhr++. 03:03
03:21 forsaken joined 03:41 Alias__ joined
svnbot6 r15481 | putter++ | yet_another_regex_engine - Can now be swapped for PCR as pugs's p6 regex engine. But many failing tests. Began sigspace, embedded :p5, and aliases. 03:50
04:01 mako132_ joined, b00t joined 04:41 hcchien joined 04:46 Schwern joined 04:57 nekokak joined 05:13 khisanth_ joined 05:14 audreyt joined
audreyt TimToady_: $() and @() does not imply rvalue 05:15
lambdabot audreyt: You have 5 new messages. '/msg lambdabot @messages' to read them.
TimToady_ ah, ok 05:17
audreyt the idea is that in lvalue context 05:18
05:18 khisanth_ is now known as Khisanth
audreyt VAR(expr()) 05:18
is just the expr() node 05:19
while in rvalue-item context it actually calls
ITEM(VAR(expr())
and rvalue-list context it does
LIST(VAR(expr())
it's not that different from existing context hinter
&item and &list
TimToady_ what does @@() look like in rvalue context?
audreyt but in the implementation we call them automatically 05:20
%() in rvalue is just LIST()
@@() may need another hint. FEED() ? 05:21
MATRIX()? MULTISLICE()?
TimToady_ UNFLAT?
audreyt anyway, I started with just VAR(@foo).item and VAR(@foo).list
but then automagically calling lowercase stuff feels wrong 05:22
re the meta:HOW question... it's true that we need a special dispatch just for HOW
and all others can be derived or defined
what about if the HOW magic method is spelled
$obj."" ?
you see, I still want to hijack the regular call-method node instead of inventing a new operation
but if it's not kosher, I'll deal 05:23
05:23 dec_ is now known as dec
TimToady_ well $obj."" might be sufficiently not kosher to work. :) 05:23
audreyt woot
maybe @@() in rvalue is spelled LOL()
TimToady_ :D
well, really list of capture, but still 05:24
I just didn't want the standard method dispatcher claiming that it knew how to do HOW for every kind of object.
audreyt but isn't it kind of the point? 05:25
i.e. for all objs, even foreign
we can all get the HOW of them
TimToady_ the MOP needs to be pluggable, and HOW is the plug
audreyt right. so it's not in the stdmethdisp
the responder is bundled with the object
in MO, an object is
(invocant, vtable)
and the vtable is anything that handles dispatch 05:26
what I'd like is an entry for the vtable to reflect itself
sending the null message seems to be as good a way as any
in which case it means "ignore the invocant and reify yourself as an object"
TimToady_ we need surreal HOWs. :)
audreyt mm, a list of captures. CAPS()? 05:27
ALLCAPS()
tene hehe
TimToady_ CAPSLOCK()
PerlJam TimToady_: Whenever I see HOW, I think of the indians from Peter Pan.
svnbot6 r15482 | putter++ | misc/pX/Common/yet_another_regex_engine/README - Review objectives, status. Considering dropping project. Feedback encouraged. 05:29
TimToady_ on the name mangling front, I've been wondering whether there should be some consistent notation for semantic operations, so instead of "infix:<+> is deeply" we have some kind of "infix:deep<+>" or other
05:30 sahadev2 joined
TimToady_ or deep:infix<+>, or whatever 05:31
then deep:DOODOO is short for something like deep:prefix<DOODOO>
putter weary :) 05:32
TimToady_ you don't need feedback, you need encouragment. :)
sahadev2 hello, is GHC 6.6 required to compile pugs? I have GHC 6.4.2 installed on my ubuntu system. would that be good enough? 05:33
TimToady_ 6.6 required now
audreyt sahadev2: 6.6 for trunk, 6.4 for the prev release
sahadev2 i just updated my svn tree to rev 15482
TimToady_ then 6.6 05:34
sahadev2 i guess i will try to install 6.6 then
TimToady_ do you have a commit bit yet?
sahadev2 thanks
putter sahadev2: do you have a commit bit yet?
sahadev2 I do. for a few months, but haven't been able to do anything related to pugs in the last few months. trying to get back in and make some sense out of it. 05:35
TimToady_ cool
05:35 TimToady_ is now known as TimToady
sahadev2 i am basically a Perl programmer with zero haskell-fu. i will have to see what i will be able to do. my interest now is to just understand what's going on in the Perl 6/pugs world. contributing something meaningful may be quite a ways off. 05:37
05:37 sunnavy joined
PerlJam sahadev2: writing about your experience would be a meaningful contribution. 05:37
(as you "get back in"
)
putter stares at screen, thinking TimToady lost his tail. Chomp()ed. "Lost tail". ... End of day.
jrockway if only you could tack a \n onto your nick :) 05:38
putter :)
Patterner and colours...
putter re encouragment, but in what direction, with what objectives. but that's for another day. 05:39
good night all &
05:47 dolmans joined
gaal hey 06:06
audreyt yo 06:08
making food, sec
plan to implement the proper ."" nonkosher dispatch after that
gaal I was thinking something like ${^Perl5_crazy_vars} could work too 06:14
or just prepend a NUL or something
audreyt I like ."" more 06:17
at least we can type it
gaal pretty thight namespace there though 06:18
06:18 nlitsme joined
audreyt but obj is just (inv, how) 06:20
so it's appropriate that .how can reflect, I guess
06:26 BooK joined
gaal rereads the conversation because he feels he's missing something 06:26
ok, I think I get it now. 06:31
."" has the benefit of not slowing down stuff very much, either 06:32
(null :: ByteString -> Bool is extremely fast) 06:33
06:37 rfordinal joined
masak audreyt: it's so good to have you blogging again 06:45
the "vv('hello, world').HOW" of pugs.blogs.com/pugs/2007/03/mo_brid...ndi_1.html doesn't work in my r15481 build 06:48
lambdabot Title: Pugs: MO bridge landing!
masak it says "Can't locate object method "HOW" of invocant: "hello, world""
maybe that's a known one
audreyt well it's temporarily renamed to .__HOW__ 06:50
I'll rename it back
in a bit, via a macro
masak ah :) 06:51
.__HOW__ works ok over here
06:54 REPLeffect joined 06:55 jisom joined
svnbot6 r15483 | audreyt++ | * Rename __HOW__ back to HOW for now; it'll be converted to macro soon. 06:55
r15483 | audreyt++ | * Also, passing objects into Perl5 should work again.
06:56 geoffb joined
audreyt masak: there you go 06:56
bbiab...
geoffb What does this error mean: "*** Cannot cast from Pugs.Val.PureStr to Ptr ()"? 06:57
audreyt it means you're on r15482 and not r15483
geoffb heh
masak :)
geoffb OK, time to pull 06:58
audreyt (I accidentally broke coercion from objects to SV)
pasteling "evalbot_r15482" at 194.145.200.126 pasted "Pugs build failure" (426 lines, 25.4K) at sial.org/pbot/23295
geoffb hmmm, build fails 06:59
trying make clean first
audreyt it's link error it seems
TimToady I get it with 15483 too 07:00
audreyt remaking on feather 07:04
TimToady up to [60 of 111]
07:06 b00t joined
svnbot6 r15484 | audreyt++ | * Pugs.Prim.Keyed: Fix keyed access into PerlSV. 07:10
geoffb Oh sure, check in the fix just when I get done building the last rev .... 07:12
;-)
svnbot6 r15485 | audreyt++ | * isa_ok against unblessed Perl 5 refs currently loops;
r15485 | audreyt++ | flunk the test for now.
gaal geoffb: "make ghci" :)
audreyt geoffb: the build should take just 1sec
it doesn't change the interface of Keyed.hs
so it should be the only one that gets rebuilt
(separate compilation)++ 07:13
geoffb 15485 built, testing ...
07:13 offby1-damnit joined
gaal audreyt: speaking of which, do we at all care about orphan instances? we have those. 07:13
audreyt gaal: not at all
geoffb Well, that bug is fixed ... I need to figure out whether the next one is in the P5 binding, or my code 07:14
audreyt at some point -fno-warn is fine
geoffb: the perl5 binding is currently undergoing surgery... I'd be happy to see more bugs coming to t/perl5/
geoffb: but the new binding code is much more robust
e.g. when you call an nonexisting method, it reports as such; also there is proper AUTOLOAD support; etc
gaal audreyt: if I understand the warning correctly, it just means compilation's a bit slower than it could have been? 07:15
audreyt gaal: yes but the speed diff is negligible 07:16
07:16 the_dormant joined 07:17 Schwern joined
gaal audreyt: ack 07:17
geoffb Boo-yah, got a small bit of P6 -> P5 code working ... now for more complex case 07:18
TimToady on the test timeout problem, I note that this successfully kills pugs: 07:20
my $x = sub { use v5; alarm 5; $SIG{ALRM} = 'DEFAULT'; }
gaal huh. 07:21
TimToady at least on Unix
well, you have to call the sub too...
gaal anybody want to implement %*SIG in pugs? 07:22
TimToady it's not clear we want to implement %*SIG in Perl 6... 07:23
gaal I wonder what doesn't play nice with GHC's runtime in perl5's innards there
TimToady well ALRM is supposed to be a fatal signal by default 07:24
I suspect GHC is changing it to IGNORE or some such
or it installs its own handler and throws away the alarm
gaal TimToady: oh? because it may not be portable? so how do you do signals on those platforms that do support it?
Some Module? 07:25
TimToady dunno, just not assuming a hash is necessarily the right interface 07:26
audreyt it's fatal because we did not install handlers via System.Posix.Signals / GHC.ConsoleHandler (win32)
so we can catch it all right 07:27
how do we tell the perl5 runtime about a signal again?
what's the api for that?
TimToady my $x = sub { use v5; alarm 5; $SIG{ALRM} = 'DEFAULT'; }
you mean the internal api?
audreyt yes
as in XS api
07:28 geoffb joined
TimToady you could still fiddle with the hash; it's basically just tied 07:28
audreyt curious despatch_signals is spelled despatch_signals
TimToady magic, really
geoffb mutters to himself about bloody keyboards 07:29
TimToady heh
geoffb Why does the commented version work, but the uncommented one errors?
Grrr 07:30
hold on
Camel3D.new().main;
# my $camel = Camel3D.new;
# $camel.main;
there we go
audreyt seems to be Perl_csighandler
gaal: what is this Camel3D? 07:31
er
geoffb: what is this Camel3D? and what's the error?
TimToady I would guess that "despatch" is a Sarathy spelling
geoffb "Undefined subroutine &main:: called."
It's a port of the Perl 5 graphics code I wrote for perl.com many moons ago. 07:32
audreyt can I duplicate this error?
TimToady I was getting that error when I tried "use v5" in something that wasn't an anonymous sub
audreyt also, try "my $camel := Camel3D.new" 07:33
07:33 cognominal joined
audreyt if I can duplicate it, I know where to fix... 07:33
geoffb give me a sec, I'll upload the code somewhere
TimToady use v6-alpha; sub foo { use v5; alarm 5; $SIG{ALRM} = 'DEFAULT'; } foo(); 07:34
that fails
audreyt k fixing
07:35 marmic joined
geoffb First: this code is resurrected from a port I did quite a while ago, so I'm sure a lot of stuff is out of date. Still: 07:36
www.broadwell.org/dl/step032.p6
audreyt installing sdl 07:37
geoffb Now *that* is dedication ... ;-) 07:38
TimToady dedication is only one remove from foolhardiness. :) 07:39
geoffb finding next bug in code
audreyt ok, got it. fixing 07:40
geoffb bah -- been away from the syntax for two long
07:42 offby1` joined 07:43 offby1` is now known as offby1
geoffb How would I currently say @{$foo<bar>} ? 07:43
audreyt @($foo<bar>) = ...
lambdabot Unknown command, try @list
geoffb ah, s,{,(, then 07:44
TimToady but you don't need the @ as many places as Perl 5 would require it.
you can just push $foo<bar>, $baz for instance
07:45 shay_ joined
audreyt fixed. 07:46
svnbot6 r15486 | audreyt++ | * Fix the "main::" error when evaluating perl 5 closures that
r15486 | audreyt++ | closes over zero lexical variables.
audreyt it had code like
my () = @_
for some reason perl5 did not like it 07:47
TimToady someone stupid must have written that compiler
geoffb clearly :-)
TimToady ?eval my () = 123 07:48
audreyt evalbot currently recompiling
ftr, pugs does not like it either
I wonder if STD likes it?
TimToady hmm
geoffb hmmm, apparently something else wrong in my code, because now I appear to be locking it up. hmmm ... 07:49
TimToady looks like it should allow a () signature there
audreyt geoffb: does r15486 fix the error for you as well? 07:51
geoffb hold on, will check
TimToady 'course, STD doesn't try to do anything semantic yet, which is where it'd have to be smart enough to deal with a signature that contains no parameters
geoffb audreyt: yep, worked like a charm 07:52
audreyt woot
TimToady and in fact the signature rule is not well written to capture the separator information 07:53
07:54 BooK joined
geoffb audreyt: repull step032.p6 from above, and look at method end_frame 07:59
Uncommented version works fine.
Commented version just seems to go to sleep.
Have to ctrl-c in controlling xterm
But at least that works
audreyt weird. will fix. 08:01
TimToady: so if I'd like to intecept all calls to 08:04
$SIG{ALRM}=...
in p5 land
is the preferred way to do this in pugsinit?
MGVTBL_SET(PL_vtbl_sigelem, ...our own ptrs...)
08:05 Alias__ joined
audreyt or rather 08:05
PL_vtbl_sigelem = {...our own ptrs...}
is there a saner way to do that?
TimToady I wonder whether an ordinary tie would override it... 08:06
audreyt perl -MTie::Hash -e 'tie %SIG, "Tie::Hash";'
this loops perl
how convenient
audreyt ponders what's wrong 08:07
using other tie backends may work. testing
no, the mg still fires
or rather, it seems to ignore tie 08:08
TimToady maybe rename the magic so it isn't found, and then tie
audreyt hm, %SIG reports hash quality = 101.0% 08:09
very good quality
the unmagic needs to be done in XS land it seems 08:10
TimToady possibly a local(%SIG) will help, but probably not
audreyt that worked.
TimToady++
so we tie %SIG into the perl6 land %*SIG? 08:11
TimToady %*SIG is unspecced 08:12
gaal %*__PYTHON_OH_WAIT_NO_PERL5_SIG
TimToady arguably signals should be treated more like events
geoffb What is $?SELF now? 08:14
TimToady self
geoffb (sorry for giving everyone flashbacks)
TimToady or $.meth
including $.meth(args)
audreyt and $.meth: args 08:15
TimToady %.meth @.meth &.meth also acceptable hinters
audreyt yay the PiH book is out! it's as close to Llama for Lambdas as it gets 08:17
www.cs.nott.ac.uk/~gmh/book.html
lambdabot Title: Programming in Haskell
geoffb bak 08:22
hmmm, where is chapter and verse for $.meth syntax?
08:23 iblechbot joined
TimToady S12:468 08:24
audreyt S12:473
I wonder if I should give in and just buy paul graham's "ANSI Common Lisp". 08:25
or this "Programming in Ada 2005"
08:27 penk joined
TimToady I suppose that depends on how soon you want to write a Lisp or Ada back end. :) 08:28
audreyt I just would like to learn the two important influences to Perl :) 08:29
Ada05 looks like a very good very advanced language, though.
TimToady Lisp was not really that great an influence...
audreyt in any case it is now...
TimToady well, much like Smalltalk, the influence is mostly indirect 08:30
audreyt *nod*
TimToady: did you program in Ada?
TimToady mostly only on paper
audreyt interesting media 08:31
TimToady about the time Ada compilers actually started coming out, I moved to C
I remember playing with the early compiler written in setl which was written in lisp.
it rand about 2 statements a second or so. 08:32
*ran
audreyt notes the SETL->ABC->Python lineage 08:33
08:34 evalbot_r15485 joined
geoffb Is there a cleaner way to say this: &::($action).(self: $command, @args); 08:38
$action being a string containing the name of a method
audreyt self.$action($command, @args)
geoffb thank god.
audreyt just what you'd expect, actually
:)
geoffb That's roughly what the perl 5 looked like, but the monstrosity above was working around that syntax not working when I first tried the port
audreyt TimToady: should $.$action(1,2,3) work? 08:39
geoffb audreyt: hmmm, cleaner version no worky. Another sleeper bug. 08:41
audreyt interesting. 08:42
TimToady audreyt: I expect that should probably work
audreyt duplicated 08:43
fixing
TimToady STD seems to be missing point blocks entirely. :/
*pointy
geoffb www.broadwell.org/dl/step040.p6 now has three lines marked # XXXX: Pugs sleeper bug 08:45
Two are nearly equal
audreyt got the bug. fixing 08:46
the bug is a semantic one 08:50
svnbot6 r15487 | lwall++ | missing pointy blocks and for's expression 08:51
r15487 | lwall++ | nameroots didn't follow sym pattern
r15487 | lwall++ | allow file-scoped package_decl to follow use and such.
audreyt TimToady: how does
$x.'++'
know that it must VAR($x)?
or rather
$x."{expression that evalutes to ++}"
or does a late-resolved method form always assume rvalue on part of its invocant?
TimToady good question, not sure I'm awake enough to answer it... 08:52
audreyt ok... that's the bug geoffb is running into
I'll just assume rvalue for now.
08:53 f0rth joined
audreyt sure enough that fixed the bug. committing 08:53
TimToady I note that Perl 5 doesn't fail 1++ until runtime.
audreyt $ perl -ce '1++' 08:54
Can't modify constant item in postincrement (++) at -e line 1, near "1++"
-e had compilation errors.
uhm.
TimToady hmm, yeah, but when you type it in directly it doesn't fail till you type ^D 08:55
caught in peephole optimizer, maybe
audreyt constant folding, perhaps 08:56
TimToady constant folding usually happens early
audreyt *nod*
geoffb audreyt: fixed bug committed?
audreyt geoffb: yup 08:57
svnbot6 r15488 | audreyt++ | * Dynamic methods such as $x.$meth should evaluate $x
r15488 | audreyt++ | in rvalue (ITEM) context instead of lvalue (VAR) context.
r15488 | audreyt++ | Reported by: geoffb++
geoffb there it is
audreyt yay, google.tw talk rescheduled to this Friday 08:58
<- in much better shape to talk about perl6 now
and I don't have to work that hard on slides this time ;)
08:58 drrho joined 08:59 dduncan left
geoffb audreyt: hmmm, still seems to sleep for me. 08:59
TimToady speaking of which... 09:00
zzz &
geoffb Did you make the fix work for the special case of self.$meth as well as $x.meth?
TimToady: g'night
audreyt TimToady: sleep well
REPLeffect self.$meth (that sounds illegal) :-) 09:01
audreyt some of meths are legal :) 09:02
geoffb: limited testcase here seems to work 09:03
I'm still having problems installing sdl
geoffb audreyt: bleah, damn sdl.
audreyt can you try this
my $self = self;
$self.$meth
etc
?
geoffb yep, will do
audreyt also you can trace which line was causing the loop
using
pugs -d step040.p6
geoffb still looping 09:04
running trace
pasting a few lines of what I think is the loop 09:06
audreyt k
pasteling "geoffb" at 64.142.64.78 pasted "looping trace" (10 lines, 1.2K) at sial.org/pbot/23301 09:07
geoffb I'm not sure where the exist repetition boundary is, but there are a lot of copies of those 10 lines
s/exist/exact/ 09:08
audreyt: what distro are you running?
audreyt geoffb: OSX 09:09
geoffb: try forcing eager evalution:
geoffb ouch. Yeah, SDL_Perl is known to be hard to install there
09:09 Alias__ joined
audreyt if ($command.does(Array)) { 09:09
geoffb (outright impossible for many versions)
audreyt my $new_command = $command.shift;
@args = @$command; 09:10
$command = $new_command;
}
geoffb OK, trying
audreyt I know you shouldn't have to do this, and assignment should be eager
09:10 nwc10 left
audreyt but this looks like a circular definition bug 09:10
geoffb Still doesn't fix it. 09:13
audreyt try "say @args" and "say $command" 09:15
audreyt rethinks the situation
and this only happens with late calls? 09:16
&::($action) does not cause it?
what about self.$process($event); below?
does it loop if you use &::($action) above?
geoffb audreyt: I actually was adding those same says, and they worked but did not change the behavior 09:18
hold on, checking
hold on, checking 09:19
Ooops
I was going to say, yes, &::($action) ... works fine
checking whether change to version in process_events can be fixed
Yep, $command = self.$process($event); sleeps, as does version split into $self = self, $self.process ... 09:21
But version $command = (&::($process).(self: $event)) works fine 09:22
audreyt and how does self.$process($event) loop with -d?
geoffb checking
audreyt can you paste a bit more context?
geoffb I'll try, it gets scrolled away really damn fast 09:23
audreyt Can't use an undefined value as an ARRAY reference at make/lib/SDL/Build.pm line 154.
very useful ;)
geoffb heh
pasteling "geoffb" at 64.142.64.78 pasted "Many, many copies of below:" (5 lines, 466B) at sial.org/pbot/23302 09:26
geoffb Sorry, context scrolled away in a fraction of a second
audreyt 2>log
./pugs -d foo.p6 2>log 09:27
wait a second then ^C?
geoffb OK, will do
Hmmm, not enough wait 09:29
retrying
09:31 andara joined
geoffb Uploading log, warning: several MB 09:32
damn DSL asymmetry
audreyt bzip2 will help 09:33
geoffb duh.
geoffb too tired to see obvious
audreyt maybe sleep after upload first 09:34
I'll eventually get SDL to install ;)
geoffb Holy crap, 5.4 MB -> 33 KB
audreyt glad 09:35
geoffb loop.log.bz2 in my dl dir
If you manage to get SDL_Perl to install on OS X, please tell me how! I'd love to be able to make cool stuff for my wife's PPC Mac .... 09:36
audreyt k 09:40
I'll return to debug once ports finishes to reinstall sdl
so please use the &::() workaround first, but I'll fix that 09:41
geoffb k
09:57 jisom_ joined
gaal remoose 09:58
09:58 aukjan|gone is now known as aukjan
geoffb demoose 09:59
gaal isLoose
10:01 geoffb joined
geoffb zzz & # I hope 10:02
10:05 the_dormant joined 10:20 elmex joined 10:42 hcchien joined
svnbot6 r15489 | audreyt++ | * The "HOW" call is now dispatched by ."". 10:45
r15489 | audreyt++ | * Also rename __ITEM__ and __LIST__ back to ITEM and LIST
r15489 | audreyt++ | as they are not super-magical; indeed the user is free
r15489 | audreyt++ | to define them.
gaal cmarcelo: I found the docs useful, thanks! 10:48
audreyt note however I retired the Codeable concept 10:49
as it's really one-and-the-same as CompiledMethod
the class is still there, but it's not in use 10:50
grep WHICH 10 10:51
oops.
gaal actually that was one of the things I remained unclear on: in what sense is the method compiled?
audreyt a method is compiled when it is attached into a concrete class 10:52
's concrete named-method body
instead of, say, an anonymous method object
or, say, a method in a role
gaal why is that called compilation and not resolution? 10:53
or: is it "attached" in the sense that a Hs closure is created binding them?
audreyt the latter 10:54
"Compiled" means it carries a real Hs Code Ptr
instead of a Exp
gaal *nod*
audreyt representing the anonymous method body
it's known as Prim in oldvalland
the idea is that you can eventually take Exp
and then upon class composition time, generate some Hs code 10:55
and eval it away
getting back a "compiled" method
mostly for performance, though currently we probably simply say "evalExp"
instead of doing any runtime codegen-to-hs
that is definitely the goal though. 10:56
PerlSV bridge I think is (mostly) fixed 10:57
audreyt ponders what to do next
1) kill the thole VRef concept and gets us Sane Container Objects
2) kill the VObject concept and gets us Sane User-Declared Classes 10:58
3) kill the VHandle/VSocket concepts and support IO layers etc 10:59
4) kill VInt/VNum concepts and put their methods from Prim into Meta
gaal: preference? 11:00
gaal 1 and 2 probably have the most immediate yellow-inducing potential to the test suite :) 11:01
audreyt I'll do 1 then 11:02
choose a container?
@ % $
$ is probably most fun of all 11:03
since it has this rvalue/lvalue nonduality
I'll do that first then
integral audreyt++
gaal make $ fast 11:04
11:04 polettix joined
audreyt gaal++ 11:04
11:08 DHGE joined
gaal anything I can help with? 11:10
(any(1..4) in their entirety are a little too big, but..) 11:13
11:15 buetow joined
audreyt why yes 11:16
add more methods to Str :)
gaal via p5bridge? 11:17
audreyt that will likely exercise our ... instances
(...) instances 11:18
well, I was n't thinking about p5bridge
gaal hmm, where's a good list of methods in Str?
or just scan Prim.hs
audreyt Prim and docs/Perl6/Spec/Functions.pod:102 onwards
see we have a spe!
*spec
gaal yay :)
audreyt some of them may be multimethods. in which case define one "long name" for each variant 11:19
we'll bridge them into userland (with proper signature checking) via prelude 11:20
which will replace the bigtable in Pugs.Prim
i.e. "class Str { method reverse () { ... } }"
actually, to follow Timtoady
"class Str { method reverse () { * } }"
gaal I was wondering about optional args, e.g. the simplest one I could think of was join, which uses space as the default delimiter
but I guess that can be frontended too? 11:21
audreyt that is frontended
in hs-land all optionals are already filled in
gaal unless we implement sigthru in haskell..
audreyt that may not be very sane...
gaal heh, okay.
audreyt I think I want our signatures in p6 syntax
anyway, the Hs prim receives simply [:Val:] 11:22
i.e. all named-positionals already translated to positional
so don't worry about names
but it may be good convention to reuse names in hs code
gaal so for example: 11:23
our Str multi join ( Str $separator = ' ', *@values )
audreyt that's a sub
not a method
so not part of Str method table
gaal "join" ... (\[: separator:values :] -> ..)
audreyt the only one in the table is
gaal sorry:
our Str multi method join ( @values: Str $separator = ' ' )
audreyt I think that is a typo... 11:24
should simply by
be
( @values )
hm
gaal because self is the separator?
isn't that backwards
audreyt ?eval "foo".join(1,2,3)
11:25 evalbot_r15485 is now known as evalbot_r15488
evalbot_r15488 "1foo2foo3" 11:25
audreyt I think it's clearly saner than
gaal huh
audreyt "foo".join([1,2,3], 'bar') # 1bar2bar3
so the Function spec is probably not to be trusted ;)
gaal <1 2 3>.join(", ") # I thought it would be
but that's of course not in Str
audreyt right. that is in List 11:26
gaal <x>.join("y") and "x".join("y") produce very different things then :) 11:27
but then, it does make perfect sense
so how do I get a @values, as one Val? 11:28
audreyt you can choose actually 11:29
anything that has MethodPrimable can do
let me define [Val] and [:Val:] for you 11:30
svnbot6 r15490 | audreyt++ | * Pugs.Class: Instances for getting the arguments as [:Val:], 11:36
r15490 | audreyt++ | [Val], or Boxable a => [a].
gaal cool 11:37
audreyt hm, our Pad itself contains VRefs. this is going to be fun... 11:43
gaal ~:/
audreyt obviously the first thing to do is to redefine VRef ;)
gaal (type inference)++ 11:45
yay!
pugs> vv("X").join("1","2","3")
"1X2X3"
pugs> vv("X").join(vv("1"),"2","3")
"1X2X3"
now the question is whether I can benefit from your instances to avoid MkStr . ... . unStr here: 11:46
, "join" ... (\self values -> MkStr (Str.join (unStr self) (map unStr values)))
probably not as ByteStr itself isn't coercible, is it 11:47
audreyt you can replace all the MkStr and unStr to cast ;)
not that it helps that much
11:48 iblechbot joined
audreyt maybe we shouldn't newtype PureStr ;) 11:48
instead just install it as type synonym
now that anything typable can be made boxable
gaal but then we can't derive stuff on it
audreyt it seems to have little point to newtype things
well yes, we just instance it
gaal *nod*
audreyt please go ahead and do that :) 11:49
gaal ok :)
svnbot6 r15491 | gaal++ | * Str.join 11:51
11:52 pnu joined, Alias__ joined
audreyt now let's play another type magic... 11:53
@pl \x args -> return (f x args) 11:54
lambdabot (return .) . f
gaal :)
it's actually
@pl \x args -> f x args 11:55
lambdabot f
gaal hehe or rather
@pl \x args -> g (f x args)
lambdabot (g .) . f
pasteling "evalbot_r15488" at 194.145.200.126 pasted "Pugs build failure" (478 lines, 30.1K) at sial.org/pbot/23304
gaal which is, well, the same as the return case where g = return 11:56
audreyt hm, incremental compilation in 6.6 seems to be hosted
*hosed 11:57
gaal there's this "identify a programmer's language by looking at their keyboards" page being linked to lately
somehow I can see my '@', 'p', and 'l' keys wearing down in the coming weeks...
svnbot6 r15492 | audreyt++ | * Pugs.Class: Auto-generate all pure MethodPrimable instances 11:59
r15492 | audreyt++ | from Eval instances.
audreyt goes back to VRef-land from type-trickery land 12:00
did I mention the size of Pugs.AST.Internals is annoying? :-)
gaal we should rename it to Hydra 12:01
audreyt fortunately at the end of day the bulk of it (the Value definitions and various casts) will Simply Be Gone
well, that day is not today
but still
gaal www.haskell.org/ghc/docs/latest/htm...e-deriving scares me; I'm looking at the manual instances e.g. ((:>:) ID) String and they look very non-trivial 12:02
lambdabot Title: 7.4. Type system extensions, tinyurl.com/uxvor
audreyt ghc/compiler/typecheck/TcDeriv.lhs:316 onwards 12:03
if you're interested
gaal thanks; my practical concern is writing out src/Pugs/Val.hs:79 and abouts by hand 12:04
audreyt uh
type PureStr = ByteString
and you don't need to write any of which
profit
gaal why? how does instance ((:>:) ID) ByteString exist? 12:05
audreyt if it did not then you could not have derived it
that particular instance is in Pugs.Internals.ID:96
TcDeriv simply repeat the base type's instance 12:06
it's not really magical, you know :)
gaal oh! I was looking only at Pugs.Internals.Cast :(
12:06 chris2_ joined
audreyt :i in make ghci =:= your friend 12:06
audreyt is tempted to name the new constructor in IVar, besides IScalar/IArray/IHash etc as "IUnknown" 12:07
gaal well, as the story goes... $5, marking an "X" with a chalk, $49,995, knowing where to put it
*shudder* that reminds me of COM
audreyt exactly
gaal "pls no k thx" 12:08
audreyt was going to name it "IV" but it reminds me of unpleasane recent memories in hospital
so "IVal" it is
gaal IAny?
12:08 kanru joined
audreyt sure, IAny 12:08
it'll be gone once it takes over the other I* anyway 12:09
12:09 shay_ is now known as shay
gaal IA64 12:09
12:09 chris2_ is now known as chris2
audreyt IPod 12:09
clkao fnord
gaal INeedAName
audreyt that's lowercase
INaN
gaal \freemoose -> 12:10
audreyt pronounced "inane". how appropriate...
gaal back to hacking :)
audreyt ditto :) 12:11
12:12 GabrielVieira2 joined
gaal Functions.pod offers the following implementation of Str.reverse: 12:16
$str.split('').reverse.join;
this is wrong, isn't it? If join defaults to a space delimiter.
audreyt yeah
gaal also, is Str a Role as implied by that snippet? 12:17
audreyt ?eval <1 2 3>.join
12:17 evalbot_r15488 is now known as evalbot_r15492
evalbot_r15492 "123" 12:17
audreyt I guess pugs is out of date 12:18
tene gaal: just find a way to special-case join to use '' delimiter in that specific situation, of course
audreyt heh. 12:19
gaal tene: why? the implementation could surely use join('')
ayrnieu ?eval join(*<1 2 3>)
evalbot_r15492 Error: Odd number of elements found where hash expected: VNum Infinity
audreyt ?eval join(|<1 2 3>)
gaal infinity is certainly an odd number
evalbot_r15492 Error: ā¤Unexpected "|<"ā¤expecting ":", identifier or ")"
audreyt ?eval join(| <1 2 3>)
evalbot_r15492 "123"
ayrnieu I wanted to emulate the perl5: join(qw(a b c)) => "bac" :-) 12:20
audreyt ?eval join(|[1, 2, 3])
evalbot_r15492 "213"
audreyt that is how you do it :)
12:26 fglock joined
fglock putter: re feedback - please go on! :) 12:30
12:30 ruoso joined
gaal tweaking Pugs.Meta.Str triggers massive rebuild. why? 12:30
audreyt gaal: really? it should not 12:31
hm.
tene what did you think the files were tied together with if not Strings?
12:31 elmex joined
gaal Ropes? 12:32
tene ;)
gaal also I'm afraid r15490 maybe introduced some type unsafety 12:33
SamB razor wire?
gaal either that or eliminating the PureStr newtype
audreyt type unsafety? 12:34
pasteling "gaal" at 192.115.25.249 pasted "with this, vv("X").join(vv("1"), vv("2")) crashes ghc" (42 lines, 1.3K) at sial.org/pbot/23307
SamB audreyt: that thing they do in C 12:35
gaal unsafeCoerceā˜£
SamB heh
gaal (those with U+2623 in their fonts are better warned here) 12:36
SamB isn't that the ReactOS logo?
gaal so, acutally I'm not sure whether it's those instances; I thought maybe it was because perhaps currying Str.join completely would confuse them and therefore trigger a crash 12:37
but as you can see from the patch with the pointful version it still happens 12:38
svnbot6 r15493 | fglock++ | PCR - fixed backtracking on non-capturing subrules; this resolves all :todo<bug> in capture.t
r15493 | fglock++ | - fixed <-alpha>; 26 more passes in stdrules.t
r15493 | fglock++ | - defined <sp> <gt> <lt> <dot> (from p6regex.t)
r15493 | fglock++ | - fixed compilation of t/09-ratchet.t
gaal SamB: U+2623 BIOHAZARD SIGN
SamB oh. 12:39
gaal reactos seems to be using a stylized atom thingie
SamB at that size, its hard to tell from the radiation sign
audreyt gaal: a sec...
gaal there's a new radiation warining icon, btw, because apparently someone thought the old one was not onomatopoeically scary enough 12:40
but it's silly, because they recursively *use* the old icon in it!
SamB what does the new one look like? 12:41
gaal www.flickr.mud.yahoo.com/photos/kt/...ateposted/ # the left one apparently isn't a parody
lambdabot Title: New Radiation Warning Signs on Flickr - Photo Sharing!, tinyurl.com/242vxy
gaal see also www.irpa.net/ 12:42
lambdabot Title: IRPA - Home
12:43 chris2 joined
gaal "The trefoil symbol has no inherent meaning and only those people that have been educated in its meaning have knowledge that it represents the presence of ionizing radiation. The new symbol is the completion of a multi-year effort by the IAEA to develop a universal radiation warning symbol that anyone anywhere will understand the message of ā€œDanger- Stay Awayā€." 12:43
SamB I don't understand it. It looks like that scary skull is chasing that poor guy... 12:44
pasteling "evalbot_r15492" at 194.145.200.126 pasted "Pugs build failure" (415 lines, 24.8K) at sial.org/pbot/23309 12:45
gaal I wonder if they realized they were using the old symbol
it's like they didn't run the typechecker on it 12:46
SamB maybe they wanted to save the educated people from dying of radiation while they tried to figure out what it means?
gaal "this old symbol is ill-formed! let's make a new one! [time passes] hmm, let's see what scary symbols we could put here. oh, here's a convenient trefoil symbol, sure looks scary to me"
RADIATION. KEEP RIGHT. 12:47
SamB shouldn't the japanese version involve going to the left? 12:48
gaal you calling godzilla a wimp 12:49
?
SamB I figure, since they read from right to left...
SamB wonders why videogames go from left to right 12:50
audreyt japanese read from left to right...
12:50 mauke joined
gaal was that always the case? 12:51
SamB not in the comic books they don't!
I mean, I don't know how the characters are ordered, but the panels are ordered right to left
audreyt gaal: it only panics ghci but not cmdline 12:52
SamB audreyt: if it panics GHCi, it is *probably* wrong
gaal hmm, probably an ID order thing?
audreyt hm.
SamB: or it is a bug. I mean, both gaal and I are using ghc-trunk.
as in, 6.7-unstable-dragons 12:53
SamB audreyt: yeah. I did say *probably*
mauke
.oO( stable dragons? )
gaal cuddly dragons though.
SamB but potentially deranged?
gaal PArrayed dragons 12:54
SamB wasn't aware GHC had any primitive types for dragons
audreyt RedDragon#
SamB oh, wait.
P
mauke Dragon#
12:54 IllvilJa joined
SamB not U 12:54
SamB silly
hehe 12:55
gaal shouldn't the ((:>:) ID) instance be inside an #ifdef PUGS_UNDER_GHCI too?
SamB the WHAT?
what the hell is :>:? is it related to (:[{- eater of comments -}]) ? 12:56
gaal actually no, since the constructor is named explicitly
SamB: svn.pugscode.org/pugs/src/Pugs/Internals/Cast.hs 12:57
audreyt SamB: (a :>: b) denotes that b is subtype of a
SamB ah
audreyt gaal: even with your patch it worksforme 13:00
it only segfaults during incremental ghci rebuild
quitting ghci and remaking ghci made it work
gaal without clean? I tried several times... 13:01
audreyt without clean... :/
gaal hmm.
audreyt oh well. I'll commit anyway
gaal then commit pointsfree 13:02
please :)
svnbot6 r15494 | audreyt++ | * Pugs.Val: type PureStr = ByteString. 13:04
r15494 | audreyt++ | * Pugs.Meta.Str: Improved join.
audreyt [ "reverse" ... Str.reverse 13:08
, "join" ... Str.join
svnbot6 r15495 | audreyt++ | 21:04 < gaal> then commit pointsfree
r15495 | audreyt++ | 21:04 < gaal> please :)
audreyt this is as good as it gets
without going to TH
I guess TH is premature atm 13:09
gaal yes, this is the version I meant
hehe yeah, TH would be a little extreme 13:10
it also kinda underlines Perl 6 ~~ Hs with sugar on top
brb 13:11
13:11 noganex joined
noganex hi there 13:12
www.perl.com/pub/a/2007/03/01/perl-...ssing.html << this article made me really snoopy for perl6/pugs
lambdabot Title: perl.com: The Beauty of Perl 6 Parameter Passing, tinyurl.com/2x2opj
noganex are there any other good articles/books you would recommend for a closer look on that pugs thingy? 13:13
ayrnieu aside, who should I hassle about Gentoo/PS3 not being able to build (the required) GHC 6.6 from provided GHC 6.4 ? I get assembly errors after a long build.
audreyt (bbiab)
ayrnieu noganex - off hand: pick up Perl6::Bible for Perl6 in general. Otherwise, www.pugscode.org and the pugs checkout itself. 13:14
audreyt noganex: rakudo.org/perl6/ ?
gaal also, consider not building ghc 6.6 yourself; it can take quite a while! 13:16
noganex thanks guys :) 13:18
ayrnieu gaal - I don't have a choice: I have a Gentoo/PS3 system to do this on. That, and -this- system, which is OpenBSD/Zaurus.
gentoo only gives me ghc-bin up to 6.4 13:19
gaal ask on #haskell or maybe #ghc here on freenode
ayrnieu OK, I'll try that in a bit. 13:20
gaal (I never used gentoo myself...)
ayrnieu the 'gentoo' part matters little, really. Unless it happens to use a broken 6.4 binary.
gaal audreyt: how to write mutating methods, such as p5chop? 13:25
13:26 cmarcelo joined
cmarcelo muu 13:26
13:26 noganex left
gaal oooose! 13:27
hey :)
13:28 Limbic_Region joined
cmarcelo gaal: glad the comments on MO were helpful, I'll continue then (at least until I cover all MO/* files).. 13:30
gaal cmarcelo++ 13:31
cmarcelo hmm, what's new in ghc-6.7 (-unstable)? 13:33
gaal ghci has a debugger! 13:35
cmarcelo wow. i'll try it 13:39
gaal hey is it on purpose that we don't export UUndef etc.? 13:43
from Pugs.Val 13:44
13:57 penk joined
gaal why do we use Data.ByteString.Char8 at all? 14:06
14:07 rindolf joined 14:36 iblechbot joined 14:47 chris2 joined, aukjan is now known as aukjan|gone 14:52 shay_ joined 14:59 amnesiac joined 15:00 gaal joined, yhsuan__ joined, yhsuan__ is now known as yhsuan
cmarcelo In an ideal world MethodPrim should take Capt instead of [:Val:]? 15:01
15:02 shay_ is now known as shay 15:04 cls_bsd_ joined, scw_ joined
gaal cmarcelo: audreyt earlier said something about dispatch-land seeing flattened args 15:18
heh, the typechecker really doesn't like this:
, "index" ... (\str sub pos -> maybe (cast UUndef) cast $ Str.findSubstring sub $
Str.drop (cast pos) str) 15:19
audreyt well you gave it a -> b -> c -> z 15:24
I havn't wrote that instance
in MethodPrimable
gaal ah
audreyt add it?
sorry, I just lost two hours to Lost 15:25
gaal also I think Int isn't castable
addicting isn't it
audreyt 'fraid so
gaal I lost 2 hr to being ill, so you're better off
audreyt oy. typeOf ill?
gaal I thought it was bronchitis but now the pain in my trachea is gone.. maybe just the flu 15:27
or maybe the antibiotics are helping but I'm still harassed by goo
audreyt :/
however a clear and concise Vision of how to do typed IVal has formed in my subconciousness whilst I was watching lost 15:28
so maybe it was not all lost
audreyt goes coding it in
gaal does this instance look reasonable? (sorry for the paste) 15:29
instance (Boxable a, Boxable b, Boxable c, Boxable z) => MethodPrimable (a -> b -> c -> Eval z) a where
asPrim f x args = do
y <- coerceVal (args !: 0)
audreyt sure.
gaal z <- coerceVal (args !: 1)
fmap mkVal (f x y z)
yay
but I'm still getting errors...
audreyt what was the error?
gaal hm sec.. 15:30
audreyt you don't need the casts though
if you write something like that
as a rule, drop all casts
in the method body
the Boxable and mkVal does that for you already
pasteling "gaal" at 192.115.25.249 pasted "errors" (70 lines, 3K) at sial.org/pbot/23312 15:31
gaal neat :)
audreyt this time around I'd like to do DRY the right way :)
gaal savior friend coming over for company and food... 15:32
s:right_place//u/
audreyt lol 15:33
s:there/// 15:34
probably works by, in compile time, use Net::IRC to log in to this channel to collect votes
...actually it can be made to work with today's pugs
audreyt dismisses that as VerySillyIdea 15:35
hm, the cool thing is we can redefine the Sym node without Prelude.pm.yml changing one bit 15:40
because Sym is never seen in serialized ASTs
15:40 GabrielVieira2 is now known as GabrielVieira
gaal it isn't? 15:41
oh Sym 15:42
not Syn
what's Sym? :)
audreyt a parser-to-unsafeEval node to generate fresh compile-time Pad entries
gaal hm I'm not getting Int -> Val magic 15:44
the typechecker suggest addign instance for Boxable Int
but that's bogus
isnt' it?
audreyt it's not 15:45
gaal what does the instance do? default?
audreyt yeah (for now)
gaal (there's already instance Boxable PureInt..
)
audreyt we add more methods to it later
PureInt is perl6-land Int
Int is perl6-land int
confusing but true
gaal oh! oh right! 15:46
bacause of magical anything-is-a-boxable paradigm
audreyt yes. 15:47
magic!
if you don't want to add instance
then just add a Just
but it will show up as opaque, which is fine for generic hs data that has no p6 counterpart
but ^int is actually a builtin 15:48
so it warrants a separate instance
gaal now I'm having trouble reconciling undef <-> int return types: 15:51
, "index" ... (\str sub pos -> case (Str.findSubstring sub $ Str.drop (cast pos) str) of
Just s -> s
_ -> UUndef)
casting s and UUndef gives copious errors 15:52
silug audreyt: is there an easy way to override pugs privlib/sitelib/etc.?
gaal guests here. moose &
audreyt gaal: well, actually. just return it. 15:53
cmarcelo in Pugs.Class:68, the instance "MethodPrimable Call a" let you use MethodInvocations directly in the (...) syntax, that's it? (/me's a few steps behind yet)
audreyt either that, or mkVal.
Just s -> mkVal s
silug i guess i should say when building pugs...
audreyt cmarcelo: why, yes 15:54
silug: please look and hack util/PugsConfig.pm
cmarcelo in essence MethodPrimable is just infrastructure to make (...) works? oh, why MethodPrim just takes [:Val:] instead of a Capt (didn't found in logs)? 15:56
audreyt cmarcelo: because at the time of primtiive method resolution all optionals are already filled in and all named-invokation-to-positionals is translated to positionals 15:58
cmarcelo: for the rare class that absolutely needs Capt
we simply don't use mkBoxPureClass
and define it with the ordinary MO way 15:59
16:00 punter joined
punter Hi 16:00
16:00 iblechbot joined
punter Will Perl6 also run in a browser like Java does? 16:00
audreyt I would definitely like to work on the Tamarin backend. 16:01
which gets us flash
which is better than Java
I hope.
ajs_ Anyone getting the impression that ^ is a bit overloaded? {^$^a^.x +^ ^$^a^.y >>^^<< ^$^b^.x +^ ^$^b^.y }
16:01 ofer0 joined
punter what? is there no ^^ operator?? 16:02
or ^-^
ok ok
ajs_ Actually, my example is broken, but ^$^a^.y >>^^<< ^$^b^.x works
"Upto parameter a's class method y return hyper-exclusive-or with upto parameter b's class method x" 16:04
It's really that ^$^a^.y that gets me.
Oops, that's ^$^a.^y 16:05
Bugs, bugs, everywhere are bugs
broquaint I propose ~$a over ^$a without any forethought or consideration. 16:06
ajs_ I don't think there's much in the way of available operator space. Certainly, ~ must be in use (string context, I think?) 16:07
broquaint Hrm, ~ stringifies stuff does it.
s/does/$&n't/
ajs_ I'm not saying it's a place to propose change, so much as a place where we want to think carefully.
broquaint I think ? would be nice but it's used for boolean context.
cmarcelo audreyt: got it. is it ok to fill some comments in Pugs.Class/Pugs.Meta.* or they'll change lot in a short timeframe?
(.. ok if I fill some comments ..) 16:08
audreyt they won't 16:09
please fill some comments
16:10 Psyche^ joined, ofer0 joined
[particle] wonders what the periodic table of operators looks like today 16:11
16:13 punter left 16:16 Psyche^ is now known as Patterner 16:19 kanru joined
audreyt TimToady: is this kosher? 16:19
my Int $x = 3; $x := "string"
or, even simpler
my $x is Scalar; $x := [1,2,3]; 16:20
looking at the second example I guess it's always okay to bind to incompatible type
but if it's the case, what's the point of Tieable?
(since regardless of tieable or not you can always rebind) 16:21
svnbot6 r15496 | audreyt++ | * Introduce the IVal variant of VRef that we're going to 16:27
r15496 | audreyt++ | unify all container types under.
moritz when I have a class like this: class Foo { has @.bar; has %.bar;} 16:31
how can I access both the array and the hash? 16:32
pasteling "evalbot_r15495" at 194.145.200.126 pasted "Pugs build failure" (384 lines, 20.7K) at sial.org/pbot/23315 16:34
16:42 charsbar joined
audreyt moritz: can't :) it's an error I think according to spec 16:46
too fried to complete the commit right now ... till tomorrow :)
cmarcelo in p6-land, how one would change the precedence order? will exist a way to create in p6 something in the same "level" as MOClass that could have different precedence moosiness..? 16:47
svnbot6 r15497 | audreyt++ | * add missing boot file.
moritz audreyt: do you know where it is specced? and should the compilation of the class fail? 16:48
pasteling "gaal" at 192.115.25.249 pasted "Isn't the first error bogus?" (43 lines, 1.7K) at sial.org/pbot/23316
moritz ?eval class Foo {has @.a; has %.a}; my $ = new Foo; 16:49
16:49 evalbot_r15492 is now known as evalbot_r15496
evalbot_r15496 Error: ā¤Unexpected "$ ="ā¤expecting "=", formal parameter, context or "(" 16:49
moritz ?eval class Foo {has @.a; has %.a;}; my $ = new Foo;
evalbot_r15496 Error: ā¤Unexpected "$ ="ā¤expecting "=", formal parameter, context or "("
16:50 awwaiid joined
moritz ?eval class Foo {has @.a; has %.a;}; my $c = new Foo; 16:50
evalbot_r15496 \Foo.new(("a" => undef),)
moritz ok, it compiles 16:51
TimToady audreyt: I do think my int $x = 3; $x := "string"
needs to be illegal
16:52 Daveman joined
TimToady and I think I would prefer if the "my Int" one could also be illegal if it's not too much trouble 16:53
if everything always requires the Tieable indirection then we give the optimizer little to work with. 16:56
16:57 lichtkind joined
TimToady and there seems to be some mental benefit as well to having lexically scoped type invariants. 16:58
maybe := always tries to cast to the type on the left and therefore can fail 17:00
and if there is no type on the left the cast is rather trivial. :) 17:01
cmarcelo ghc-unstable build error: src/Pugs/Internals/Monads.hs:31:26: Module `Control.Monad.RWS' does not export `MonadIO(..)' .. also inside ghci I can't :browse Control.Monad.RWS, is it normal or my installation maybe crippled? 17:11
TimToady @tell audreyt actually, := is already specced to fail if the type is inconsistent, S03:1003 17:17
lambdabot Consider it noted.
nothingmuch cmarcelo: in the meta class simply replace the MRO combinator 17:27
kolibrie TimToady: it's always a good sign when current thoughts on a subject match thoughts from previously 17:47
17:52 justatheory joined
masak say "{ newton(8, \&f, verbose => 1, epsilon => .00005) }"; # aren't the quotes and braces a no-op? 17:52
[particle] yes, as is the backslash 17:55
TimToady kolibrie: not always--sometimes it just means you're making the same mistakes over and over again. 18:13
kolibrie TimToady: the woes of imperfection 18:15
18:18 shamu joined
cmarcelo nothingmuch: so, "^Class" in Perl means MOClass for Pugs (at start)? 18:31
18:31 offby1 joined
cmarcelo masak: re "{ ... }", in the article I think the author was showing the {} interpolation inside strings.. 18:32
nothingmuch cmarcelo: i suspect 18:33
Larry always said that .HOW was not really a part of the language spec
so it's probably just the default metaclass 18:34
or rather the instance of the metaclass describing the default metaclass
meta meta jokes are fun
cmarcelo :) 18:35
nothingmuch oh, by default metaclass i mean the MO default metaclass, same api
when bootstrapping gets into it, it'll probably be the class that was compiled with the compiler toolchain 18:36
unless it was replaced at BEGIN
shamu is there a pdf/postscript/latex version of the synopses available?
nothingmuch shamu: you can create some
check out the pods from svn.perl.org (if orget the full URL)
and then use pod2latex
shamu is that pod2latex up-to-date with the pod in those pods?
nothingmuch personally i think the best looking output is from pod2man and then making that into pdf 18:37
huh?
pod2latex is a cli tool
use it on the pods from the svn head, and it'll be up to date
shamu POD has kind of evolved over time -- what with the unicode excapes, et al
nothingmuch ah
i've never had any issues with it
shamu I'm wondering if pod2latex can handle everything in the (rather recent) perl6 pods
nothingmuch i think it uses Pod::Parser, which is supposed to be pretty comprehensive
shamu ah ok
I'll give it a shot then 18:38
nothingmuch good luck
shamu thanks
nothingmuch maybe set up a cron script to keep them up to date on a feather web home
shamu ?
what's a feather web home? 18:39
nothingmuch make your pdfs public, and upated automatically
oh
feather is the perl 6 development box donated by Juerd
you can get webspace for perl 6 related things on it
shamu ah gotcha
thanks, I'll give that a shot 18:40
18:56 jisom joined 19:02 coumbes joined 19:04 coumbes left 19:09 coumbes joined 19:10 Minidin joined, coumbes left 19:11 fglock joined 19:13 REPLeffect joined 19:17 mako132 left 19:23 perlbot joined 19:27 explorer joined 19:31 dduncan joined 19:41 stevan_ joined 19:47 drupek12 joined 19:50 chris2 joined 19:54 DHGE joined 20:08 nipra joined 20:10 nikhil-- joined 20:23 SamB is now known as samb 20:24 samb is now known as SamB
moritz habt ihr mal ein traceroute auf www.hw.ac.uk gemacht? 20:29
das wird Ć¼ber aussen geroutet....
bin gerade beim 20. ping, kein Ende in Sicht ;)
und webmail.hw.ac.uk ist auch nciht besser 20:30
mj41 hi, I lost svn passwd. username rootmj. pleas, help me :-). 20:31
buetow moritz: isnt this an english channel? 20:32
fglock buetow: it's multilanguage
buetow ok, also kann ich auch in deutsch schreiben (so i can write in german as well :) 20:33
fglock mj41: checking
moritz: btw, same result here
moritz sorry, wrong channel 20:35
fglock: I wanted to say that in a channel inside .hw.ac.uk ;) 20:36
fglock hmm - I don't see how to reset a commitbit password 20:39
moritz: np :)
moritz fglock: what do you mean by "resest"? deactive an account? or change passsword? 20:40
fglock mj41: I resent the invitation - please check 20:41
mj41 fglock: thanks
fglock moritz: how to help someone else change password
20:42 Aankhen`` joined
moritz hm, dunno 20:44
20:50 rindolf joined
mj41 fglock: It didn't help. 20:51
20:58 rodi joined
fglock mj41: sorry. the channel should get in a more populated timezone in a few hours, you should get proper help then 21:01
kolibrie obra: do you know how to reset someone's password with commitbit? mj4l (rootmj) is looking for this service 21:03
fglock home & 21:04
moritz we could just delete him and re-invivte 21:05
kolibrie unless it would remember that username/email and not let it be recreated 21:06
I'm not sure how svn's authentication works
moritz by default it's just htusers 21:09
but I guess you could configure virtually any backend
kolibrie which commitbit might do
21:37 the_dormant joined 21:43 larsen_ joined, awwaiid joined 21:56 awwaiid joined 22:07 ofer0 joined 22:34 Psyche^ joined 22:36 geoffb joined 22:39 gnuvince_ joined 22:51 Psyche^ is now known as Patterner 23:30 DrSlump joined
DrSlump hello 23:30
moritz hi
23:33 Limbic_Region joined 23:52 Khisanth joined