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
|