Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by stevan on 15 August 2005.
putter hi stevan 00:01
svnbot6 r7153 | putter++ | PIL-Run - updated name mangling of types for mm2.
r7153 | putter++ | pugs-p5.pl: p5 expressions are now evaluated in the correct package. And ->perl is now shown, rather than ->str.
putter let's see... why did I ping...
ah. I figured out ->name. so the only thing is the Str->new()->isa('Class') #=> 1 bug report 00:03
and when DESTROY's in Array and Hash and Scalar began working, the gc errors became pervasive. So I commented out the meat of the DESTROYs. 00:04
stevan Str->new()->isa('Class')?? 00:06
putter ah, 00:07
stevan putter: hmm, that is the tricky part 00:10
putter bah. it should be something like $::Class->new('$.name'=>'Foo')->new()->isa('Class') but gc errors stop me from actually running it
stevan Str->isa() is actually calling $instance_of_class->isa()
gc errors?
what ones?
putter oh, that's a new one, 00:11
(in cleanup) Method (DESTROYALL) not found for instance (Dispatchable=HASH(0x133b2d0)) at /home/net1/perl6/pugsxpl2/perl5/PIL-Run/../Perl6-MetaModel2.0/lib/chaos.pl line 450
stevan hmm
the problem is that GC tries to call all the DESTROY methods
which just totally wreaks havoc 00:12
I will have to give this some thought
putter ok.
stevan maybe I should call, then remove all the DESTROY methods at the end of runtime
putter so if all the DESTROY methods are commented out, the gc problems should go away?
stevan no idea
I never tried it
putter k
stevan let me try the removing DESTROY methods thing 00:13
I think that should wokr
putter ok
stevan as for the Str->new()->isa(Class) thing
thats a bug,... not sure how to fix it at the moment
the problem is that there should be a class method version of isa() 00:14
putter k 00:15
stevan putter: can you make a test out of that GC issue? 00:19
can you reproduce it on a small scale? 00:20
putter hmm... let's see... 00:27
stevan putter: I think I might have gotten in 00:29
s/in/it/
putter well, this ./pugs -B perl5 -e 'say 3' shows the old gc problem... :) and... (oh, ok, I'll wait and try that) 00:31
svnbot6 r7154 | putter++ | pugs-p5.pl: repl reverted to p6_to_s from p6_to_perl. No non-essential changes! They may expose bugs, creating ambiguity vis mm2 transition.
stevan putter: commiting now .................. 00:34
ok,.. its there
try that,.. let me know if it complains 00:35
putter trying...
./pugs -B perl5 00:36
p5ugs> :5 $::Class->new('$.name'=>'Foo')->new()->isa('Class')
Use of uninitialized value in concatenation (.) or string at /home/net1/perl6/pugsxpl2/perl5/PIL-Run/../Perl6-MetaModel2.0/lib/chaos.pl line 513.
(in cleanup) Method (DESTROYALL) not found for instance (Dispatchable=HASH(0x13409d0)) at /home/net1/perl6/pugsxpl2/perl5/PIL-Run/../Perl6-MetaModel2.0/lib/chaos.pl line 450
...
stevan this might interest you : users.ipa.net/~dwighth/smalltalk/bl...p_toc.html
svnbot6 r7155 | stevan++ | Perl6::MetaModel 2.0 -
r7155 | stevan++ | * chaos.pl now attempts to handle some GC issues
r7155 | stevan++ | - in an END block we collect all active classes, then call DESTROY
r7155 | stevan++ | on all of them, then set a flag to tell the dispatcher not to
r7155 | stevan++ | accept anymore requests for DESTROY
r7155 | stevan++ | * added remove_method to ::Class
r7155 | stevan++ | * added FETCH('{}') to ::Package which gives back the namespace hash
r7155 | stevan++ | - this is not ideal, but works for now 00:37
r7155 | stevan++ | * added some more tests re: the Str->new()->isa(Class) issue
putter neat. read the books years ago. added to my "readables" list. thanks! :) 00:38
still complains. replicable as described.
stevan putter: do you think you can boil it down to a test case for the MM? 00:39
I am not sure what your repl is doing that is causing this
putter :5 is just print eval("package ".&p6_main()."; ".$1),"\n"; warn $@ if $@; 00:40
stevan what is p6_main()
hey luqui
luqui hi stevan 00:41
Language::AttributeGrammar cpanned
stevan what is that?
luqui an attribute grammar module
it's a tree traversal thingydingy 00:42
stevan ah
cool
luqui just realized that it probably works on graphs pretty well too
yay for sensible algorithms!
stevan putter: what version of perl are you using? 00:43
so luqui what does it do? is it on search.cpan.org yet? 00:44
nothingmuch luqui++; # i will check tomorrow
luqui I just uploaded it ten minutes ago, so probably not
stevan luqui: wanna no paste it?
nothingmuch pause.perl.org/incoming/
no need
luqui there are four tests :-) 00:45
stevan nothingmuch: check this out users.ipa.net/~dwighth/smalltalk/bl...p_toc.html
luqui I couldn't think of a way to test it modularly
so I just used some examples
nothingmuch luqui: that's what happenned to me with blondie
luqui so I know when it breaks, but it will be a pain to figure out how
nothingmuch i retrofitted a few later
now i will add more, and then refactor
s/now/tomorrow/ 00:46
putter p6_main() just returns a package name. the same error occurs with a bare eval($1).
nothingmuch btw, stevan, i was thinking of macro processing as nothing more than making the actual evaluation of code a compile time directive 00:47
putter v5.8.5
nothingmuch sort of like, to actually run a program you have to say something like BEGIN { apply(&main) }
putter I tried doing a file with just use Perl6::MetaModel; $::Class->new('$.name'=>'Foo')->new()->isa('Class'); but that gives me a different (but in some ways similar) error.
nothingmuch that *really* confuses macros with functions, which I like
luqui heh 00:48
putter Use of uninitialized value in concatenation (.) or string at perl5/Perl6-MetaModel2.0/lib/chaos.pl line 513.
Method (BUILDALL) not found for instance (#<=(9)>) at perl5/Perl6-MetaModel2.0/lib/chaos.pl line 450
nothingmuch code emission to a "static" backend means that there is no Eval node and no Val of type AST anywhere but &main
stevan putter: weridness
putter: can you run the MM2 test suite? 00:49
putter running...
stevan nothingmuch: *cough* thick crack smoke *cough*
nothingmuch stevan: yup =)
forth has tought me the value of IMMEDIATE
luqui that is, everything is a macro in such a backend? 00:50
stevan luqui: I only sort of understand you Attribute grammer thing
was there a p6l thread on this?
luqui yeah, tough to describe, esp. today when I am not in a documenty mood
nothingmuch stevan: there was a nice talk i linked to
it has an example of dumping a treeish structure as HTML
stevan nothingmuch: where?
nothingmuch with indentation
i don't remember
stevan bah,... what good does that do me 00:51
nothingmuch backlog ;-)
luqui but I'm looking for features to add. I wrote this module before ever using an attribute grammar for anything
so I have no idea what would be useful
nothingmuch ah, i think i found it
www.win.tue.nl/ipa/archive/falldays...torial.pdf
stevan putter: I see your latest issue 00:53
nothingmuch good night
stevan $::Class->new('$.name'=>'Foo')->new()->isa('Class') wont work becuase Foo needs to have $::Object as it's superclass
good night nothingmuch
geoffb good night, nm 00:54
nothingmuch btw.. new website up: www.beyahad.info/
point your hebrew-speaking-bi-polars there please
luqui night
hey nothingmuch 00:55
nothingmuch huh?
luqui go to www.behayad.info
:-)
nothingmuch i'm not bi-polar
i just built the website for a friend =)
luqui uh huh
sure
stevan suuuuurrre for a friend
just like luqui's friend who needed Viagra
nothingmuch nono, that was for my dog 00:56
uh, i mean, luqui's dog
friend
luqui haha 00:57
stevan putter: this works for me print eval("my \$Foo = \$::Class->new('\$.name'=>'Foo'); \$Foo->superclasses([ \$::Object ]); \$Foo->new();");
luqui why would you eval that? 00:58
stevan luqui: it is eval'ed because it is inside putter's repl loop
luqui i see 00:59
stevan he is having GC issues,.. we are trying to debug em
luqui eew gc 01:01
er, yay gc, eew gc issues
stevan eew ref counting GC,...
putter perl5/Perl6-MetaModel2.0/t/08_multi_methods.t 01:02
1..12
ok 1 - The object isa PrettyPrinter
Can't call method "can" on an undefined value at /usr/lib/perl5/site_perl/5.8.5/Class/Multimethods/Pure.pm line 86.
# Looks like you planned 12 tests but only ran 1.
# Looks like your test died just after 1.
stevan odd
luqui uh oh
putter other than that, looks good.
trying... 01:03
luqui that looks like my module :-p
yay for bad error checking luke 01:04
putter Use of uninitialized value in concatenation (.) or string at perl5/Perl6-MetaModel2.0/lib/chaos.pl line 513.
#<=(9)>
luqui oh wait --- stevan, did you note my latest change to C::MM::P
stevan putter,.. this commit will fix that one
luqui: no idea
luqui forgot to tell you that it would break your rewrite of internal_multi
I refactored
robkinyon obra: ping
stevan luqui: you punk!! 01:05
luqui on the other hand, I made it so you don't have to rewrite anything
just pass a custom registry object
stevan putter: what version of C::MM::Pure are you using? 01:06
luqui so that's probably where putter's problem is coming from
putter checking...
0.10 01:07
stevan I have 0.06
ok,.. upgrading now
obra robkinyon: heya. autrijus suggested I ping you about PDF::Template 01:09
svnbot6 r7156 | stevan++ | Perl6::MetaModel 2.0 - small fix for annoying GC stuff
obra robkinyon: I'm looking for complex examples.
stevan luqui: what do I need to do to fix this? 01:12
luqui so you know how you rewrote internal_multi? 01:14
with basically the same code as it had before, but a small change at the end
stevan ok
wanna just fix my code in chaos.pl?
:)
luqui fair enough
robkinyon Uhh ...
luqui suppose I deserve it :-p
robkinyon Heh
stevan luqui++
robkinyon PDF::Template is in an interesting place right now
What kind of complex examples are you looking for? 01:15
stevan has to attend to $real_life, bbiab
robkinyon & kid's screaming
back 01:18
01:21 jiing is now known as jiing__, jiing__ is now known as jiing
robkinyon obra: I can come up with some complex examples, if you want 01:22
buu What happened to the eval bot? 01:24
luqui oh right 01:27
I should start him up again 01:28
pugs wasn't building, so evalbot wasn't updating
obra robkinyon: Thanks :)
svnbot6 r7157 | luqui++ | Brought MM2's Class::Multimethods::Pure usage up-to-date with my interface-breaking change. 01:33
luqui putter, that's your queue, try again :-) 01:35
er, cue :-) 01:36
luqui laughs at himself
buu I don't suppose anyone has even heard of a portmaster? 01:37
Supaplex i has
buu Really? 01:38
Supaplex yup
buu Have you ever, say, configured one?
Supaplex on occasion, yes
buu REALLY?!
Can you help me make this hideous piece of trash talk to another server via telnet?
geoffb heard of one, yes, fought with one yes, configured one, no
Supaplex you mean telnet out of it? 01:39
buu Yeah
Supaplex there is the telnet command, isn't there?
buu I'm trying to dial in to it and get connected to a telnetd running on a local box
Supaplex it's like uber simple last I recall
ohh, you'll need to login as !root
buu Er, not that part 01:40
When ever I dial up portmaster at the moment I get a "press <RETURN> to begin Login"
Supaplex so telnet say to your cisco router from the portmaster
buu Just a linux box
Supaplex k, 1m - logging in to the pm4 01:41
buu I have a modem, ya? I want to dial a number and connect to the portmaster. I want the portmaster to transfer me over ethernet to another box running telnet, so I'm left going directly from my modem to the telnet box
Supaplex so the modem on your pc dials the pm, and you login to a terminal session, then you want to telnet via tcp to the linux box 01:45
buu Yes!
Well, what do you mean by "login to a terminal session"? 01:46
Supaplex not ppp
like the bbs days ...
buu Ah. Well, I was kind of assuming I would use ppp, but I'm fairly agnostic as long as it works
Supaplex depends on the account you have. if you have ppp connectivity, you can just telnet from your pc to the linux box, can't you? 01:47
well, I guess you could telnet to the pm, then telnet again off the pm to the linux box 01:48
buu Well, it's slightly more complicated
I'm just using a pc as a test
Eventually it's going to be a dial-up modem in a small embedded system way the fuck out
Supaplex I see... 01:49
so what's the simplest part of your objective you're attempting to complete? (let's break this complicated thing down into bite size pieces)
buu Er 01:50
Get telnet over modem on this pc?
Via the pm
Supaplex so you've got putty, right? 01:51
humm does putty handle modem's directly (via serial?)
buu Actually, I was using hyperterm
Supaplex before you answer that, you want ppp, right?
buu Sure.
And yes, hyper term handles the modem directly. I give it the number and it dials it.
Supaplex so you can putty (use telnet) to the pm
ok, then that's not likely to be ppp. that's straight up serial terminal 01:52
buu Er, yes, I can telnet to the pm just dandy.
Supaplex unless you talk ppp ;)
ok
buu But when I dial the pm, I get the "press enter to begin login" dealy.
Supaplex and you can run command line utils off the pm
buu Sure? 01:53
Supaplex really
luqui ?eval [+] 1..10
evalbot_7157 55
Supaplex can you paste the transcript to a pastebin or something?
buu Supaplex: Transcript of what, exactly?
Supaplex you attempting to hyperterm, including that snippet where the delay is
buu Er, I open hyperterm, say "dial here", it displays an alert box saying "connecting..", eventually it connects, then I just get the message I mentioned above. I hit enter, it asks for a password. 01:54
"Press <RETURN> to begin Login Session" 01:55
"Password:"
Supaplex rafb.net/paste/results/jVw2oP82.nln.html is what I get 01:56
buu I've tried lots of passwords and such, but nothing works.
Supaplex well you have to have a login on the pm :)
buu Supaplex: Yes, that's talking via telnet
I've got telnet to the pm working fine, it's not the issue here.
I'm trying to dial *through* the pm
Supaplex as in my sample, you're having issues paste the lithium> prompt, right?
paste/past/ 01:57
buu No!
My issue has nothing to do with your paste!
Supaplex ok
buu That is using telnet to talk directly to the portmaster.
I can do that fine and dandy.
I'm trying to use my modem to dial up, go *through* the portmaster, and talk to another box using telnet via the portmaster 01:58
Supaplex after you're dialed into the pm, you're trying to telnet?
buu Yes!
Supaplex can you ping google or browse www sites?
buu Except, I'm not really because I don't know how to configure it.
Er, I don't get anything past the login prompt when I dial in.
Supaplex yea, that's nothing fancier then getty attached to $SHELL - no tcp/ip or ppp involved. you're not routing anything 01:59
buu Um. What? 02:00
The portmaster has a shell?
Supaplex ignore that, first see if you can ping/browse etc while connected
buu I CAN'T CONNECT
Supaplex then quit using hyperterm! 02:01
to dial ...
buu What else should I use?
Supaplex inetwiz
buu Look. I can dial in and "connect" to the pm 02:02
But *all* it gives me is the "press enter for login" dealy
I can't get past that.
Supaplex but if you're using hyperterminal to dial, you're only connecting to the pm via a serial console over modem. (like mgetty) 02:04
bbiam
buu Er, I don't think so. The the box is only connected to a modem. This modem is connected (eventually) to a portmaster 02:05
(Going for hot dogs, I shall return!) 02:06
putter luqui: thanks! updating...
syntax error at perl5/Perl6-MetaModel2.0/lib/chaos.pl line 559, near "my " 02:07
luqui that's... odd 02:09
didn't happen for me
unless the test suite doesn't depend on chaos.pl 02:10
putter my $registry = { had two { {
luqui yeah, I see that. weird
did you fix it?
putter 7158. 02:11
svnbot6 r7158 | putter++ | chaos.pl: fix typo
luqui what's the name of that module that allows you to croak out of a set of modules? 02:12
Supaplex buu, you can connect to a pm with minicom, hyperterminal etc and not have a ppp connection established. It's one of the handy ways to troubleshoots a pm box when your data provider is having issues to the pop (point of presence) location. I've done that dozens of times to login and see no ppp sessions active, because radius will not authenticate (because the data transport is down, telco PRI's work fine). if you want docs from the pm about this, I coul
luqui: Carp ?
putter the test file use Perl6::MetaModel; print eval("my \$Foo = \$::Class->new('\$.name'=>'Foo'); \$Foo->superclasses([ \$::Object ]); \$Foo->new();"); no longer gives warnings, but result in #<AnonClass=(9)>, which seems incorrect. 02:13
luqui no, the one where if module A calls module B, and I "own" both of those, if I croak from B, it will look past A to find the caller
putter s/result in/results in/
err, huh? 02:14
luqui putter. hmm.
putter oh, a Carp comment. ;)
luqui I think you're back in stevan's turf
putter sounds like. my thanks for your help. :)
luqui Carp::Clan, that's it 02:15
buu Supaplex: No, I'm connected via modem
Supaplex and your modem transports a serial connection over a telco line. 02:16
putter luqui++
buu Supaplex: Um. Ok? 02:17
Supaplex and if you were connected via ppp while using hyperterminal, you'd beable to browse etc
buu Supaplex: Wouldn't I have to get past this login prompt?
Supaplex yea, you'd have to have a login for it. not to be confused with a radius login that ppp users would use 02:18
putter stevan: the .t error has changed to > Can't use string ("PrettyPrinter::pretty") as a HASH ref while "strict refs" in use at perl5/Perl6-MetaModel2.0/lib/chaos.pl line 555.
> # Looks like your test died before it could output anything.
buu Supaplex: I created a user on the pm, but this thing doesn't ask me for a username, just a password
putter however, the gc error on exit is gone! :) luqui++ stevan++ 02:19
Supaplex what portmaster is it?
buu Supaplex: a portmaster 3, I beleive
believe! 02:20
Supaplex I'm not even sure if we have any of those in service
Supaplex checks
putter stevan: if Array's DESTROY is again enabled, the result is (in cleanup) Bad instance (FORCE=SCALAR(0xac41a0)) at /home/net1/perl6/pugsxpl2/perl5/PIL-Run/../Perl6-MetaModel2.0/lib/chaos.pl line 52 02:21
Supaplex nope, just a armfull of pm4's and some 3com stuff 02:23
anyway, time to commute
buu Well, thanks for the time any way. 02:24
putter fglock: @a=(3,4) no longer works. and push(@b,3) fails with Signature does not match (as does for()). I haven't yet looked at it closely. hopefully tomorrow. 02:25
so, not bad for a day's fiddling. stevan++ fglock++ luqui++ 02:35
good night all & 02:36
luqui autrijus, ping 03:24
svnbot6 r7159 | yiyihu++ | * Fix some typo. 05:30
autrijus luqui: pon 06:02
greetings \camels
listening to brendon's invited talk: 06:04
"Javascript in 10 years"
luqui autrijus, I was going to ask you what a chained attribute was, but i figured it out 06:05
autrijus cool. it's a bidirectional attr
luqui yeah. except it doesn't seem to make a lot of sense
lhs.num = @lhs.num + 1
seems to be, um, wrong
autrijus that does not look like correct indeed. where does that come from 06:06
luqui let me find the link
www.cs.uu.nl/~arthurb/data/AG/AGman.html#htoc27
I know what it's saying, that the synthesized attribute is one more than the inherited attribute of the same name 06:07
But it's a wicked shorthand (if I'm grokking it)
oh, also, Language::AttributeGrammar is cpanned :-) 06:08
autrijus ooh.
and yes it's a wicked pun.
it makes sense but evil
luqui so I'm not doing it in my module.
autrijus ooh, luqui++
luqui anyway, besides autocreated attributes, are there any important features? 06:10
(and no, I'm not including a typechecker :-p)
autrijus are you working with variant (tagged union) types? 06:11
luqui uh, it can, provided they implement the right interface 06:12
(a method for each child node is enough)
One of my goals is to make it work nicely Parse::RecDescent without being coupled to it 06:13
autrijus ok. 06:14
makes sense, since P::RD is the closed match on CPAN
s/closed/closest/
"javascript (previously known as "mocha") suffered from the "marketing scam" where imitating java's suboptimal standard library at that time" 06:16
<brendon> and some people still think I'm Gosling. it's very confusing
s/where/by/
luqui doesn't associate JS with Java at all anymore :-) 06:17
autrijus not "object oriented" but "object based" -- i.e. not distinguishing constructors from other regular methods 06:19
"conventions enforced by culture"
luqui :-) 06:20
autrijus "each ajax application needs its own OO system with its own reflections anyway"
coral mm, Parse::BNF in javascript 06:21
"click here to test the parser described in the RFC above"
pardon the dreaming
luqui coral, it shouldn't be that hard
parsers are easy. fast parsers are hard. :-)
QtPlatypus luqui: Famious last words.
coral it's already on CPAN.. 06:22
luqui oh, I figured "pardon the dreaming" meant it didn't exist
coral no, that's better phrased as "pardon the idea without motivation to implement"
QtPlatypus QtPlatypus: BTW is there a good way to do default values for object attributes in pugs?
coral looks at QtPlatypus 06:23
autrijus autrijus: sure
BUILD ($.x = 3) { ... }
coral reverts to osmosis phase
luqui class { has $.x = 3; 06:24
} # not supported?
QtPlatypus luqui: Thats currently a paser error.
autrijus luqui: no, not sure how to interact with BUILD for one ( I guess BUILD overrides) 06:25
luqui: but a proper mm2 integ should fix that 06:26
pdcawley Morning all. 06:36
luqui just realized that Parse::RecDescent::FAQ has the question "Is Parse::RecDescent LL(1)? LL(n)? LR(1)? LR(n)?" and never answers it
evening pdcawley
no, I suppose it is morning
QtPlatypus ?eval "a" eqgt "a" 06:39
evalbot_7159 Error: unexpected "g" or "e" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
QtPlatypus ?eval "a" eq "a"
evalbot_7159 bool::true
QtPlatypus ?eval "a" gt "a"
evalbot_7159 bool::false
QtPlatypus ?eval "a" egt "a"
evalbot_7159 Error: unexpected "e" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
QtPlatypus Thought so
luqui ?eval "a" ge "a"
evalbot_7159 bool::true
QtPlatypus Thanks luqui 06:40
r0nny damn 06:43
luqui darn 06:44
r0nny?
r0nny i got a socket $foo - how to read data from it ?
luqui in perl 6 land?
r0nny yeah
luqui doesn't know
r0nny argh
luqui probably with the iterator
QtPlatypus =$foo
luqui yeah, that one
r0nny hmm 06:45
now it "works"
wtf 06:46
after i kill te connec ted programm it prints everything i send to it, but adds 2 \n for each \n in the input 06:47
for =$bar{say;}; <- what did i break ? 06:48
luqui yeah 06:49
because say appends a \n after it prints
and =$bar doesn't strip the newlines (but maybe it should now?)
use print instead of say
r0nny there is still a problem 06:50
it wont print anything, till i close the connection
how munch does = want to read ?
luqui one line usually 06:52
but it may be laziness creeping in...
luqui isn't sure
r0nny omg 06:54
even if i feed it with about 60 lines it wont print
:(
does anyone know, how to change this ? 06:55
luqui ??
r0nny i used netcat, to sein a longer file to the script, but it handt printed anything till i closed the socket 06:56
send
hmm
anyone ? 07:00
QtPlatypus Does split('',$string) use the PGE and is there an equiverlent that doesn't 07:01
QtPlatypus doesn't.
r0nny omg 07:02
pugscc is broken
autrijus r0nny: it doesn't use PGE
QtPlatypus ?eval "text".chars 07:03
evalbot_7159 4
QtPlatypus autrijus: That was directed at me I assume?
autrijus er sorry yeah
r0nny: try doing a $*OUT.flush after the say
r0nny wont work 07:04
seems like the socket wants to read waaay to munch data
autrijus hm, nopaste the code? 07:05
also try
while ($_ = $bar.readline) { ... }
QtPlatypus ?eval "text".split('')
evalbot_7159 ('t', 'e', 'x', 't')
autrijus bad style of course
but worth trying 07:06
r0nny $bar.readline breaks it complete :/
autrijus nopaste the code somewhere :/ 07:07
r0nny my $bar=8060.listen.accept;for =$bar { print; };
this is the minimal working version - any additions had no effect 07:08
(or bad effect)
autrijus my $bar = 8060.listen.accept; 07:10
while ($_ = $bar.readline) {
print;
$*OUT.flush;
};
this worksforme
r0nny $*OUT.flush isnt needed 07:14
thx :)
is there a short way of connec t, too ?
autrijus look at examples/network 07:15
my $hdl = connect("www.phreeow.net", 80);
(in http-client.p6)
r0nny hmm
i think im going to write a simple irc bot now
autrijus cool, there are quite a few in examples/network :) 07:16
nothingmuch morning
autrijus iblech: what do you think about Net::IRC-OO? 07:18
as it stands it can't be use'd
may I mv it to Net::IRC::OO?
r0nny lol 07:19
the wizard game is broken ;)
autrijus iblechbot: anyway I'm going ahead :)
r0nny: yeah, we are in bad need of releng help
nothingmuch autrijus: maybe we need yet another namespace
autrijus how is it broken?
nothingmuch Net::IRC <author> <version> <style> 07:20
where style is freeform, but not part of the module's name
autrijus mmm "style"
r0nny autrijus: aafter i win vs the first opponent, it seems to stay in a endless loop
autrijus I think it's part of "version"
r0nny: weird because it worksforme
r0nny hmm
luqui thinks that that's part of the module name 07:21
it's a different interface, compatible in no way
autrijus good observation. 07:22
nothingmuch aye
but Net::IRC is the "purpose"
luqui yeah, well Class::Multimethods is the purpose of Class::Multimethods::Pure
nothingmuch why should Net::IRC::OO be called Net::IRC::OO just because we didn't have OO back when Net::IRC was started
luqui Why should Net::IRC have style "OO" just because we didn't have "style" back when Net::IRC was started? 07:23
I don't think you can ever get away from the problem
svnbot6 r7160 | autrijus++ | * Move Net::IRC-OO into Net::IRC::OO
luqui the only way I see style being useful is if it's really part of the same module by the same author 07:24
and in that case, shouldn't it just be an import flag?
so autrijus (and nothingmuch too), any suggestions for new features Language::AttributeGrammar? 07:27
I want to make it a nice, complete module, not a POC
autrijus ok, looking at it 07:29
luqui thanks 07:30
r0nny omg 07:37
nothingmuch ? 07:38
r0nny i think i found, why for =$bar wont work
luqui you did?
r0nny seems like there is no autoflush for sockets
nothingmuch luqui: i'll have a look at your AG later 07:43
nothingmuch has to work
didn't notice your RFC
luqui RFC? 07:44
ahh
not formal :-)
'sok, I'm going to bed in 15 mins or so
nothingmuch RFC the acronym, not the document
aye
sleep well
luqui thank you, work well, er...
nothingmuch feels like a mega-xp-whore on perlmonks 07:46
i've never gotten so many upvotes on such a pointless node ;-) 07:47
luqui which node? 07:48
nothingmuch in this thread: perlmonks.org/?node_id=494914
r0nny omg
luqui that was it? 07:50
oh no, r0nny is talking about his god again :-)
r0nny the life example is slow as hell 07:53
luqui everything is slow as hell 07:54
we're hoping we can optimize later :-/
r0nny i hope someone steals a time machine, and rips the final perl6 from the future 07:55
luqui well, apparently the parrot backend was pretty fast when it was working (on a very small subset of p6)
r0nny, you can't wait?
:-)
there are better things to do if you can't wait then hope for the impossible
r0nny the language perl6 really __kicks__ ass
luqui one is to learn haskell and start hacking
(or even don't learn haskell and hack on nonhaskell parts)
r0nny, thank you. we're all proud. 07:56
r0nny haskell is slow
luqui faster than perl5
faster than java. it ain't bad. 07:57
r0nny faster then java is easy ;)
luqui :-) agreed
r0nny well - cant beat good c/c++
luqui asm can. but that just goes to reflect that fundamental tradeoff 07:58
you want developer time or program time?
(the tradeoff seems to break down when it comes to java)
(where both times are large) 07:59
r0nny well - actually im writing some c++ libs trading compiler time for programmer time - but dont waste programm time
luqui a type inferencer?
r0nny type inferencer ?? - never heard of this 08:00
luqui that's one thing I can think of that doesn't waste program time but saves on developer time. But it trades compilation time (which is cheap)
type inferencer looks at your program and fills in all the "int" "MyClass" "vector<foo>", etc. for you
by looking at how you use your variables
r0nny omg
this sucks 08:01
luqui yawns
I think it's time for bed
r0nny i combine different idoms, to make it allmost impossible to do bugs, if only using the libs 08:02
luqui I'll have to look at that 08:03
r0nny and with some operator overloading, polimorhism, template mixins and the other fun stuff it is very easy to write complex stuff in less time
the lib is very basic atm
since it will be part of the os i develop
luqui oh my
Laziness, Impatience, and what?
r0nny later it will have templates for easy definig of devices, so huge parts of the drivers will write themself 08:04
luqui anyway, I got to get to bed
r0nny n8 then
luqui night
autrijus luqui: nice job on L::AG. 08:19
looks most sane.
Juerd wonders what L::AG is 08:32
autrijus Juerd: useful stuff. 08:33
pause.cpan.org/incoming/Language-At....04.tar.gz
Juerd Oh, OS X, how I hate thy awful performance!
Thanks
nothingmuch aweful performance?
Juerd pause.cpan.org/incoming/Language-At....04.tar.gz 08:34
I could learn a foreign language while waiting for the beach ball
Hmm
nothingmuch ah
not enough ram, perhaps?
dduncan how much RAM do you have?
I find its good to have a minimum of 512MB ... 768 or a Gig works great 08:35
nothingmuch gets that on his laptop after he's opened about 20 terminal windows and 50 browser tabs, and something code goes out of control
dduncan certainly, if you only have 256M, making Pugs will crawl
nothingmuch after i kill the memory hungry progam, everything beachballs when swapping back
Juerd nothingmuch: I have 512 MB. I'm used to getting much better responsiveness out of machines with this amount of memory.
nothingmuch Juerd: well... the UI comes at a cost =/ 08:36
you can run KDE/Gnome on it via fink though
dduncan its not the UI so much
Juerd Oh, don't worry
nothingmuch GNU Darwin can get you started
Juerd This box will know Linux.
nothingmuch dduncan: that was my best guess... what is it?
Juerd And the more it'll beach ball, the sooner it will get Linux on it.
dduncan since Mac OS X 10.2, all that RAM used by the window manager is highly compressed, and hardware accelerated 08:37
so the issues are more elsewhere
Juerd In fact, when I'm done watching all movies stored on this hard drive, I'm migrating.
nothingmuch dduncan: not the graphics buffers... the book keeping data
Juerd Saves me a whole lot of money too
I had this thing for a few months, and then 10.4 came, with a huge price tage.
dduncan I'm still using 10.3.9 ... meets my needs 08:38
Juerd I hadn't considered the subscription element of proprietary software. I just wasn't used to that anymore.
svnbot6 r7161 | autrijus++ | * don't "use" String::Multibyte unless we actually use .grapheme
Juerd dduncan: Well, I want a newer Java, but Apple won't let me have it.
And I hate having to jump through lit hoops to get something working.
dduncan and that's unique to Mac OS X? 08:39
nothingmuch thinks Juerd and OSX are not meant to be together
Juerd dduncan: So far, oh yes.
Perhaps Debian and Ubuntu spoiled me
But yes, I am used to getting much simpler installations and upgrades.
Oh, did I mention that in the lower left corner of my primary workspace, there is part of the window that has been requesting a reboot, since three weeks ago? 08:40
It has no close button, and I hate it too much to just kill it.
It has to suffer in the corner.
dduncan why is that dialog there, requesting reboot? 08:41
Juerd The reboot is for non-system upgrades, by the way.
Well, the upgrading software has installed newer software.
dduncan did it install additions to the OS?
Juerd Safari, Mail, and iTunes.
All three I can restart without restarting the entire system, thank you, OS X.
But even if it were a system kernel upgrade 08:42
nothingmuch you can subvert that
cmd+opt+esc
Juerd It would still allow me the choice to collect some uptime.
dduncan he didn't want to kill it
nothingmuch btw, softwareupdate from the command line asks you to rebooto manually
Juerd s/would/should/
no, MUST.
nothingmuch thinks that it doesn't really matter 08:43
because most OSX users are like my mom
they don't know about the fundamental diff between an app and the syste,
and if safari ships a new shlib that everything else must be restarted for, then perhaps rebooting the machine is the simplest choice 08:44
dduncan since those Apps are made by Apple, it is possible that they bundle certain system service updates with the app updates, and/or the apps are composed partly of daemons, hence the restart request ...
Juerd It should optimize for "most" users
dduncan however, I haven't seen this when I've updated those apps
nothingmuch the fundamental issue is that OSX is not meant for people who like control
Juerd Not cripple other users.
dduncan I don't recall being asked to restart when upgrading an app, only a system component
nothingmuch well, too much choices are, at least in apple's opinion, adding unnecessary complexity
Juerd I have some applications open that I wish to keep open for weeks.
nothingmuch then you can ignore it 08:45
if you know what you are doing you can get around it
Juerd After restarting the system, it takes me at least 20 minutes to get the system back in its current state.
nothingmuch Juerd: what apps are those?
you can use launchd to get veyr right init.d like behavior 08:46
dduncan according to my current Software Update, the iTunes upgrade does *not* request a restart
nothingmuch per user or per system
dduncan however, Quicktime does
and they did appear around the same time
Juerd nothingmuch: It includes firefox with some tabs, the whole of applications, window arrangement
dduncan maybe that's what requested the restart
nothingmuch that's because quicktime is reused in around every app that makes noises or draws pictures
dduncan yes
Juerd nothingmuch: Some permanently open IM windows
I don't even know who they all are 08:47
But it sure does help me to have them open all the time.
dduncan: It's not a matter of simple requesting
nothingmuch Juerd: if you like that specific form of stability, then i think you should just refrain from updating.. there's nothing really important in there, I think
Juerd The window doesn't have a "I'll restart later, but thanks for the heads up" button
Even Microsoft Windows has this. 08:48
dduncan oddly enough, some of them do
nothingmuch Juerd: the issue is cultural
based on apple's assumptiont hat most people should not be given that choice
svnbot6 r7162 | autrijus++ | * At suggestion from dons, expose the main "runProgramWith" API
r7162 | autrijus++ | of Pugs so it can turn a Pugs "Val" into anything at all,
r7162 | autrijus++ | particularly something that hIDE or yi would accept, so perl6
r7162 | autrijus++ | could become a scripting language for them.
Juerd This is the computer instructing me to do something
That is the wrong way around.
nothingmuch because it will cause behavior that is unpredictable to them
Juerd The computer is my slave, I am not its.
nothingmuch i'm not saying right or wrong, it's just that this is OSX, and it won't change
Juerd Unpredictable? Hell no, the changes aren't even active until you restart. 08:49
dduncan Windows PCs also have a physical button to eject floppy disks etc, so you can easily make them come out while the R/W heads are still working on them, potentially damaging the disk; Apple didn't give that option
nothingmuch right, but serve users who don't know how things work you need to cut some choices
Juerd dduncan: That's not a software issue, it's a hardware issue. It has nothing at all to do with either Microsoft or Windows.
dduncan it had to do with Apple not giving people certain choices, though 08:50
Juerd nothingmuch: Then give the dialog a red "close" button, for power users. It doesn't confuse any newbie, but provides me with enough of a hint to know that it'll rid me of this thing.
Anyway
I've had this Apple for half a year now
And it was nice to finally get to know OS X
It's not for me.
It's not even for my grandpa. 08:51
dduncan does your grandpa have Linux too?
nothingmuch fair enough =)
Juerd Both me and my digi-analphabetical grandpa are much better off with Ubuntu.
dduncan: Sure. Windows is too hard and complex for him.
The man's 81.
nothingmuch so what makes OSX bad for him?
Juerd He must have few choices, and a system that works.
nothingmuch: The way too prominent difference between window and application. 08:52
It's hard for some people to grok that if you close a window, the application is still running.
nothingmuch ah
Juerd And he finds it hard to predict whether clicking a dock icon will or will not open a new window
This is the same problem, but in a different guise 08:53
dduncan and other people are confused by menu bars for multiple apps being visible at the same time, in their windows
on the Mac, the menu bar shows the front most application all the time
Juerd Oh, he's just confused by the weird menu bar that is attached to windows semantically, but not visually
dduncan and there aren't others to confuse them
Juerd dduncan: The concept of rectangles that serve to delimit windows works really well. 08:54
nothingmuch yes and no
these are issues which are completely cultural
Juerd The MacOS menu bar is outside the window, but part of it.
nothingmuch there is no point arguing over them
dduncan often, the same app has multiple windows
Juerd dduncan: Newbies are single taskers.
All of them are.
People needing simplicity don't have two windows visible at the same time. That's confusing. 08:55
integral sounds like the original Machintosh interface
dduncan what if they want to compare 2 documents side-by-side?
Juerd But when they do get multiple windows, not out of choice, it should be damn obvious which widget belongs to which window.
dduncan: They switch, via the task bar, or via expose.
dduncan integral, not quite
integral dduncan: they print them both out and use a red pen! or at least my mum does
dduncan the original Mac OS only had one app running at a time
but any app could always have multiple windows, and the menu bar was separate on the screen 08:56
integral ok, the "multitasking" one after that, each app just used the full screen still
Juerd My dad mostly dislikes OS X because of its exaggerated font smoothing which he finds ugly...
But then, the guy dislikes Gnome too just because it's ugly
dduncan that can be turned off
Juerd dduncan: And then you get no smoothing at all 08:57
nothingmuch windows is pretty? ;-)
Juerd There should be something between the lightest smoothing and it turned off
dduncan I think smoothing can also be adjusted
Juerd This something is usually called anti aliassing in other systems
Apple's smoothing is just a blur, it's not actual anti aliasing.
nothingmuch uh, wtf?
dduncan oh really? 08:58
that would seem very unlike them
Juerd A straight line should not have a half-transparent line along it.
integral gnome's one's very good at getting that right
Juerd integral: That's not Gnome's, but X's
dduncan: If you happen to have Terminal.app open right now, with ssh running in it, look at the h 08:59
integral yes, but gnome insists on running on X
dduncan done
Juerd dduncan: There's a gray line left of it. It shouldn't be there - it hinders clarity.
The h in the title bar, by the way :)
nothingmuch turns smoothing off for the terminal
dduncan I can see the grey line in the terminal window itself 09:00
Juerd nothingmuch: Yes, it's the title bar, not the terminal
dduncan where I type it in
nothingmuch but for everything else it has never made me sad
integral it's very noticable on the ā€” in the title
Juerd nothingmuch: You like beach balls, then? :)
dduncan now that its running, in the title bar I can see a slight grey on the right side, but its more subtle ... easier to read 09:01
Juerd dduncan: Anyway, this is very bad for clarity and contrast. People with bad vision who are beyond what lenses can fix, really do notice these little things more than other people.
dduncan I have a flat panel display, if that makes any difference
mind you, I always operate at a lower resolution than my screen is capable of, due to *my* poor vision
Juerd AA is good, "smoothing" (blurring) is not.
dduncan in this case, 1024 rather than 1280
on 17" 09:02
Juerd At lower resolution, especially on a flat panel, it's very visible.
Has it never bothered you at all?
dduncan I can see it, but it doesn't really bother me
Juerd It bothers me because I know the theory, but isn't really a problem for me
(Like bad spelling)
Anyway 09:03
I'm looking forward to installing kubuntu on this machine
I still do like the hardware - a lot.
dduncan never heard of that one
Juerd Of what?
dduncan kubuntu
is the k a typo?
Juerd No
Ubuntu is ubuntu-base + ubuntu-desktop
svnbot6 r7163 | autrijus++ | * remove Pugs.External.C at prompt from SyntaxNinja.
Juerd Kubuntu is ubuntu-base + kubuntu-desktop
dduncan okay
Juerd Kubuntu uses KDE, not Gnome. 09:04
dduncan so KDE is not a desktop of its own?
how is that different from "kubuntu-desktop"?
Juerd kubuntu-desktop is a meta-package that depends on the packages that together make up kubuntu
One of these packages is KDE 09:05
It doesn't install the full KDE suite, though, because ubuntu, and thus kubuntu, do try to keep things simple and grokkable.
dduncan so then, "ubuntu-base" by definition does not include a desktop?
Juerd Indeed
It's the base system
Usable for both workstations and servers
dduncan I guess that base system only includes a command line 09:06
Juerd And for people who don't like meta packages :)
dduncan with the GUI desktop an optional install for a desktop
Juerd Well, the default installation for ubuntu is ubuntu-desktop
This is what you get if you don't choose "server"
You can then choose to install kubuntu-desktop, and remove ubuntu-desktop's packages manually 09:07
dduncan would you consider Ubuntu to be the most user-friendly Linux distro?
Juerd You can also get a Kubuntu cd instead of an Ubuntu cd, and then you get kubuntu-desktop out of the box
Yes, I do
Kubuntu a little less so, but it's nicer to work with if you do know how a computer works.
dduncan I do prefer a system with a default config that "just works" 09:08
while I like to program, I do not like to spend time configuring a system
Juerd So do I
That's why I migrated from Debian to (k)Ubuntu for workstations 09:09
I do like to have the option of being in control when I want to quickly do something, though
dduncan is there a Ubuntu live cd?
Juerd There is
It even works on macs. 09:10
(If you get the ppc one, that is)
dduncan yes
Juerd Ubuntu ships free cd's, they are in two-cd cartons: live and installation
dduncan I'll try to remember the name Ubuntu, should I want to try running a Linux desktop some day
Juerd These are pressed cd's
It takes a month at least to get them
But you can get 10 or even 100 at a time. 09:11
To hand them out to friends.
integral the linux version of aol...
Juerd Don't bother trying to get a single one. It's cost ineffective :)
integral: It works well.
dduncan probably cheaper to download and burn it myself
Juerd dduncan: Cheaper than free?
integral Juerd: it does. I use it on a couple of desktops
also dead easy to install for X terminals
Juerd dduncan: It'll certainly be faster to download and burn it, though :)
dduncan that's what I mean 09:12
but are you also saying you can get CDs in the mail at no cost?
Juerd Yes
dduncan I thought they always charged for those, to cover pressing and shipping costs to them
Juerd You get a box with in it, 10 or more cartons
No, it's completely free.
Canonical, the company behind Ubuntu, sponsors it.
dduncan I see 09:13
Juerd That's only for ubuntu, though
dduncan anyway, its 2:13 am here, so I'm about to nod off
I see
Juerd Good night
dduncan and I leaveth ... 09:14
masak strings aren't subscriptable by default, are they? 09:20
svnbot6 r7164 | autrijus++ | * import dons's Data.FastPackedString, an amazingly fast
r7164 | autrijus++ | string manipulation library. Currently just for PIL.Str,
r7164 | autrijus++ | but thinking about moving it back to Pugs.Val as well.
masak what kind of overloading would it take to make them subscriptable?
Juerd masak: Not following current design, but I'd like them to be, .chars-wise.
masak Juerd: it would certainly help in a char-based algorithm 09:21
Juerd masak: class Array { method postcircumfix:<[ ]> ($index) { .chars[$index] } }
Or something like that.
masak class Array? why?
masak is implementing boyer-moore in p6 right now, for fun 09:22
Juerd It'd be nice if strings would just coerce to arrays as character arrays, and [] provided Array context to its left.
masak: Oh, then ignore me. I'm talking theoretical, have no good overview of what's current, andcertainly have no idea what's actually implemented 09:23
masak Juerd: oki
I'll just try a few things and see what works
there is something to be said for writing things in the normal way, too
QtPlatypus ?eval ord("A") 09:26
evalbot_7164 65
Juerd I think there's mostly something to say for changing the normal way
QtPlatypus ?eval ord("Z") 09:27
evalbot_7164 90
QtPlatypus ?eval ord("a")
evalbot_7164 97
QtPlatypus ?eval ord("z")
evalbot_7164 122
masak Juerd: if maintainability is an issue, writing things as normally as possible is very desirable 09:29
dang, the pseudocode would be trivial to write in p6 if the indexing weren't one-based 09:35
which serious language uses one-based indexing nowadays?
masak begins at 0, as god intended
integral lots of maths... 09:36
masak integral: not really, but lots of chances of making an off-by-one mistake 09:43
integral not really? 09:47
Juerd masak: Sure, but what's normal?
masak: Is normal when the programmer writes what he means in a certain syntax, or is normal when a programmer writes things that don't resemble what he means, but are needed because of the language's limitations? 09:48
The simplest example I can give is until/if not
I love that I can choose.
eh
unless/if not
and until/while
I do usually write if not, but I do feel limited in a language that has only if. 09:49
qwr unless not ;) 10:11
masak Juerd: I actually agree with you there, and it's one of the places where I feel that damian is being overly strict in his PBP book 10:13
(he doesn't like unless/until because they tend to be difficult to maintain) 10:14
& #lunch
QtPlatypus ?eval given "T" {when "A" le $_ le "Z" {say "Test"}} 10:30
evalbot_7164 undef
QtPlatypus ?eval given "T" {when "A" ge $_ ge "Z" {say "Test"}} 10:31
evalbot_7164 undef
QtPlatypus ?eval given "T" {when ("A" le $_ le "Z") {say "Test"}}
evalbot_7164 undef
QtPlatypus ?eval given "T" {when ("A" le $_ ) {say "Test"}} 10:32
evalbot_7164 undef
QtPlatypus ?eval given "T" {when (1) {say "Test"}}
evalbot_7164 undef
QtPlatypus ?eval given "T" {when /T/ {say "Test"}}
evalbot_7164 Error: cannot cast from VUndef to Pugs.AST.Internals.VCode (VCode)
QtPlatypus ?eval given "T" {when "T" {say "Test"}}
evalbot_7164 Test bool::true
Juerd masak: I still have to read that book 10:39
It feels weird to be spending money on a style guide though
And I think a style guide without "my" in its title is just wrong. 10:40
knewt builds ghc on his new laptop. gonna take a while methinks :) 10:49
svnbot6 r7165 | clkao++ | UTF8.PackedString is no more 10:50
clkao oops, that doesnt fix the build 10:51
wolverian QtPlatypus, 'when "A" le $_"' means 'if $_ ~~ "A" le $_' which probably doesn't make any sense 11:28
QtPlatypus nods. 11:30
wolverian: Is there anyway to do something like that? 11:31
spinclad ?eval given 't' { when 'a'..'z' { say 'in' }} 11:40
evalbot_7165 undef
Juerd QtPlatypus: when .ge("A"), perhaps 11:41
spinclad ?eval $*VERSION 11:42
evalbot_7165 \undef
spinclad ?eval $?VERSION
evalbot_7165 Error: Undeclared variable: "$?VERSION"
spinclad .oO (how's that go again?) 11:43
autrijus ?eval $?PUGS_VERSION 11:51
evalbot_7165 \'Perl6 User\'s Golfing System, version 6.2.9, August 3, 2005 (r7163)'
autrijus clkao: the build doesn't build for you? 11:52
spinclad (didn't build for 7164 either?) 11:53
G2 Wow, Autrijus is here.
spinclad ?eval $?PUGS_VERSION 11:54
evalbot_7166 \'Perl6 User\'s Golfing System, version 6.2.9, August 3, 2005 (r7163)'
autrijus G2: hi.
G2 autrijus: Hi. This is quite cool. You're famous 11:55
G2 ends suck up
autrijus er. hi. thanks.
G2 autrijus: nevermind. I just love the community, being able to say hi to the top people 11:56
svnbot6 r7166 | autrijus++ | * Merged Data.FastPackedString with Simon Marlow's FPS API.
r7167 | autrijus++ | * Fix build by supressing DrIFT.Binary's instance for PackedString
autrijus G2: thanks :) it's indeed a lovely place, this channel
G2 autrijus: Aye. On PM, you get to speak to Merlyn, Larry and all the other greats. Anyway, I'll leave you to do your thing. Keep up the great work (from ghenry on perlmonks.org - perlmonks.org/?node_id=386673) 11:57
Jooon G2: I usually just hang around and say "oooh" and "aaah" when I see something cool, which happens a lot :)
G2 Jooon: I know. It's very cool. 11:58
Off for lunch. Catch you guys later.
nothingmuch struggles with extern, c headers, and name mangling
autrijus nothingmuch: for $job or blondie or something else?
nothingmuch $job 11:59
autrijus nod
nothingmuch spent the weekend doing charity sysadmining
indirectly
fixed up a catalyst site for a friend and wasted lots of time getting it to actually run
but Blondie is going to be top priority soon
i have big plans for the type inferrencing stuff
spinclad deeply enjoyed backlogging the MM2 work tod^Wyesterday
nothingmuch spinclad: anything specific? 12:00
spinclad no, just... being here when it got hammered out. \camels++ 12:01
been looking forward to it for a while, just bystanding 12:03
nothingmuch ah 12:05
spinclad nm: do you have any interest in CPS-transformations in Blondie? such as would let you define both map and for in root terms... 12:13
svnbot6 r7168 | autrijus++ | * oops, wrong linking.
spinclad ?eval $?PUGS_VERSION 12:15
evalbot_7167 \'Perl6 User\'s Golfing System, version 6.2.9, August 3, 2005 (r7163)'
spinclad ?eval $?PUGS_VERSION 12:16
evalbot_7168 \'Perl6 User\'s Golfing System, version 6.2.9, August 3, 2005 (r7163)'
spinclad heh
do we know the evalbot's really running a new-build pugs?
s/build/built/ 12:17
autrijus disagreement would mean the build failed
nothingmuch not necessarily
sometimes i think that doc fixes etc would not cause a rebuild, no?
autrijus true...
nothingmuch spinclad: yes, i'm going to do CPS tranformations in Blondie 12:18
eventually i hope Blondie becomes somewhat like schemee
spinclad should still make a new pugs_version.h, and so a new pugs
nothingmuch hmm... good point
spinclad that would be most tasty
nothingmuch ... but with perlish semantics WRT pluggable runtimes and typing, and so forth 12:19
i have some pretty funky ideas about macro processing
where every macro is just a normal function 12:20
except that it's type signature is AST -> ... -> AST
so they can be defined in terms of higher order functions
whenever the Macro node happens at compile time, the invocant function is compiled, and it gets it's uncompiled parameters as ASTs
and then the return value is compiled in place of the Macro 12:21
but this is slightly special casey
what I would really like is an Immediate node
and a Delayed node.
as well as compile and apply nodes 12:22
spinclad notes a schemish front-end as a possible TODO 12:24
spinclad works on his tuit supply 12:25
autrijus spinclad++ # tuit boost 12:27
spinclad thanks, that helps 12:28
wolverian QtPlatypus, you could just use 'if'
QtPlatypus wolverian: I have. It ends up being a big ugly 6 line if {...} elsif {...} else {...} thingy 12:46
Juerd QtPlatypus: when condition ?? $_ :: "\0" { ... } ;) 12:51
eh
QtPlatypus: when condition ?? $_ !! "\0" { ... } ;)
wolverian oh, well. why isn't when "a".."z" working, anyway? :) 12:54
Juerd ?eval "a".."z" 12:56
evalbot_7168 ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z')
Juerd ?eval "b" ~~ ("a".."z")
evalbot_7168 bool::false
Juerd Because it's broken :)
wolverian right. :)
Juerd ?eval 3 ~~ (1..9)
evalbot_7168 bool::false
wolverian ?eval 3 ~~ [1..9]
evalbot_7168 bool::false
Juerd ?eval [1..9] ~~ 3
evalbot_7168 bool::false
wolverian ?eval (1..9) ~~ 3 12:58
evalbot_7168 bool::false
wolverian hm. where is &infix:<~~> defined? 12:59
icyvapor anyone know about processing large-scale dataset using perl? 13:06
integral using perl6? 13:07
nnunley Junctions.
integral LINQ in c#, maybe
autrijus icyvapor: which shape of data?
icyvapor how can I check whether I'm using perl6 13:08
flat text files
nnunley icyvapor: Unless you install perl 6, it's unlikely that you would be using it by accident.
icyvapor :) then I'm not, the perl I'm using comes with linux 13:09
integral icyvapor: well this channel, as indicated by the name, is specifically for perl6, Perl 6 and related bits
nothingmuch booya
integral there's #perl, #perlhelp, #perlcafe, ##perl, etc for more general stuff 13:10
nothingmuch had to make ufc_crypt from glibc compile on windows since CryptAcquireContext is so nice
icyvapor ok, thanks a lot guys 13:12
wolverian nothingmuch, what is that?
nothingmuch wolverian: on windows to do the normal crypt() style hashing you need to do some pretty weird stuff
namely be logged in with permissions that allow you to get a handle to a remote object in a secured process 13:13
via CryptAcquireContext
makes sense, doesn't it? =(
anyway, since there are many ways of instantiating it, and more ways in which it could fail, and we had yet another scenario where it doesn't work
i just integrated a plain C implementation
wolverian nothingmuch, I .. uh .. that fits my theme of browsing we.hates-software.com today :) 13:16
nothingmuch wolverian: anything specific? 13:19
btw, this is the second time CryptAcquireContetxt has pissed me off
the last time it couldn't compute a crypt of a password because the session i was logged in through (cygwin ssh server) was not interactive
we now have if (!CryptAcquireContext(...)) three times with different args 13:20
wolverian nothingmuch, just taking a break from being serious 13:21
nothingmuch ah
so how do you post to there?
huh... /me didn't even notice itunes changed look again 13:24
wolverian nothingmuch, hates-software.com/ 13:29
nothingmuch yeah, i found out by now ;-)
nothingmuch suspects he will be a regular poster
wolverian :) 13:30
autrijus mm this ongoing talk is going to make iblech happy 13:36
nothingmuch how come? 13:37
autrijus a new way to implement first class continuations on utterly uncooperating VMs
nothingmuch ah
brief us?
autrijus compile away continuations into stack inspection primitives. 13:38
starting from ANF
the URL is: 13:39
www.cs.brown.edu/~sk/Publications/P...tack-insp/
nothingmuch that sounds a bit like continuations in C on the c2 wiki
basically it changes the base and stack pointers to point at a different stack each time 13:40
and it can swap these
nothingmuch wishes he was next to autrijus right now 13:42
the talks sound so interesting
autrijus it is!
nothingmuch is pissed 13:45
beyahad.info is responding like crap because it can't write to an old template cache file
Petal is so stupid about these things... It's a really nice language for when the template is very simple 13:46
but the implementation is just not good enough
nothingmuch will prolly have to switch to TT soon
xinming_Beijing autrijus: hmm, May I know what does class continuation mean please? 13:48
autrijus xinming_Beijing: "first-class" continuation 13:49
first-class means you can pass it around as a value
so his insight is basically that a disciplined use of try/catch can implement ANF-plus-continuation-marks
which is then proved to be rich enough to carry full call/cc 13:50
it's quite nice, complete with working implementation targetting C#
xinming_Beijing autrijus: hmmm, So, does it mean. The class will act as a object automatically? 13:53
autrijus his paper mentions Parrot :)
xinming_Beijing hmm...
autrijus "Parrot went to great length to become CPS based, but we proved that normal error-handling would serve their purpose just as well" 13:54
xinming_Beijing: er, no, it has nothing to do with class and objects
xinming_Beijing: this is about continuations. think of the dump() functions. 13:55
if you can put dump()'s result into a variable, _without_ stopping the program
and you can resume from that variable later
then you get first-class continuations
so this technique is as good as CPS, but does not rely on tail calls or trampolines 13:57
so it should fit well with javascript
integral and perl5? 13:58
xinming_Beijing hmm, So, In my understanding. It makes the snapshot of a "function" or a object into a variable. And you can use this "variable" later, right?
autrijus integral: I don't know how good eval{} and die" is in term of performance
xinming_Beijing: no, read "perldoc -f dump" :)
xinming_Beijing autrijus: So, Does this mean, We can hibernate the program, And run in that state again soon. 13:59
autrijus: Ok,
autrijus yup
integral there's labelled blocks and last too
autrijus it's exactly like hibernation.
integral: can't use that in interaction with normal perl5
hm, wait, maybe we can 14:00
integral oh, not without a shim layer, but you're using the metamodel stuff anyway, so lots of stuff doesn't look normal anyway...
autrijus right exactly
and
xinming_Beijing Oh, This idea will make well-written perl 6 program fastest without close... >_<
autrijus FOO: { ... call_complex_ffi(sub { last FOO }) }
this in p5 will dtrt?
integral oh, no it won't
autrijus no?
"last-outside-sub" 14:01
integral the FOO is searched in the dynamic scope at the time the last is executed
autrijus really.
integral sorry, I think I assumed the wrong question
xinming_Beijing autrijus: Ok, I think I know that idea now...
autrijus integral: it worksforme. 14:02
xinming_Beijing autrijus FOO: { ... call_complex_ffi(sub { last FOO }) }
is this example for me?
integral autrijus: I don't quite understand what the WTRT is wrt to though. Capturing the stack when the closure is created? last across a Perl->XS->Perl callback?
autrijus the speaker notes no prior art on trampolining or cps+try/catch on javascript vms 14:04
xinming_Beijing: no, that was for integral
integral & 14:06
nothingmuch autrijus: help... 14:07
"the relation |-->* is the reflexive transitive closure of the transition function" 14:08
what does that mean?
autrijus closure means the return value can be used again as the argument 14:10
transitive means that if a|->*b and b|->*c then a |->*c
reflexive means that forall a. a|->*a 14:11
does that help?
nothingmuch somewhat
nothingmuch will try to compile 14:12
wolverian what is the transition function?
:)
autrijus wolverian: turing machine, apparently 14:13
nothingmuch CEK machine 14:14
research.compaq.com/SRC/personal/fl.../pldi93.ps 14:15
wolverian autrijus, oh. 14:16
nothingmuch, ah.
nothingmuch wonders if you can take a course on reading mathy articles 14:20
nothingmuch wants to be a certified lambdexic 14:21
lambdlexic, sorry
so what does "the relation" is the <adjectives> closure of the translation function mean"? 14:22
beh, quoting bugs
a relation is a closure of a function 14:23
closure means an ad-noun describing a property of the function
autrijus: help more 14:24
;-)
fglock how about "the set of things that can be both arguments or results of the function" (is this correct?) 14:25
nothingmuch hmm, that is begining to make sense
autrijus mm after this talk the all-exciting icfp contest result will be revealed 14:26
nothingmuch the robots contest? 14:28
autrijus yeah
nothingmuch sounds fun
autrijus one wonders which language will win this year... not perl6, that we are sure 14:29
acme played in it iirc
with perl5
nothingmuch atomic { nothingmuch.tuits += acme.tuits; acme.tuits = 0 };
AG made me think a bit 14:30
lots of things in perl 6 are hard to compile
atomic { } requires that everything is stmish
eval makes things tough
etc etc
what if blocks were attributing through callgraphs
e.g. atomic { } adds an attribute to all assignments that can be called from it 14:31
assignment adds the attribute to all lvalues
SSA Phi compression of lvalues allows to determine which containers need logging and which ones are never shared
nothingmuch will try to add leverage Language::AttributeGrammar in Blondie to make such conversions possible 14:32
compute how little work can be done for a given program
aha... our compsci guru explained it to me 14:37
kolibrie Juerd: I didn't quite grasp the full meaning of: K vnd grtz n btj mljk t lzn, n d z mt ntrljk n s zjn 14:40
Ik vnd grtz een beetje moeilijk te lezen, ...
nothingmuch is that dutch with no vowels? 14:41
kolibrie believe so
except for the grtz, which is a quote from an e-amil 14:42
mauke hmm, "mljk t lzn" could be "possible to read"
kolibrie oh, I can translate from dutch to english, I want the rest of the dutch 14:43
"I find grtz a little difficult to read, ..."
mauke oops, didn't see your second line :-)
Juerd kolibrie: en die z moet natuurlijk een s zijn 15:18
autrijus judges's prize: dylan hackers 15:24
3rd: Combat Tantalin (haskell) 15:26
2nd same as judge's prize
kolibrie Juerd: ah, thank you
autrijus the dylan hackers are giving the audience an overview of the language 15:28
acme__ pesky lack of winning 15:31
autrijus 1st prize: Wolfgang Thaller et al, Haskell, two years running
clkao poor team orange
acme__ they didn't use my much-prettier-maps 15:32
eg icfpc.cs.uchicago.edu/reg/026/robber/ vs astray.com/icfp/game/robber_vs_rand...k_wutka/10 15:37
stevan dylan++ # very cool language 15:43
good morning boys and girls
fglock hi stevan 15:54
stevan hey fglock 15:55
nothingmuch doesn't get a greeting? 15:57
fglock hi nothingmuch! 15:58
stevan hi nothingmuch
nothingmuch and I thought you didn't love me for a second there ;-)
stevan nothingmuch: I will never stop loving you ;)
nothingmuch stevan: to prove it want to fly me to euro-oscon?
stevan was messing around with lambda calc till very late last night 15:59
nothingmuch: I suggest you start walking now,.. you might make it
stevan would love to go to EURO-OSCON too
nothingmuch yep... the lebanese/syrian boundry is no problem what so ever
s/boundry/border/ 16:00
stevan you could pass
with your accent
nothingmuch hehe
also, amsterdam is pretty far away 16:01
20 days is not much
stevan bike then
nothingmuch i could possibly bike there
yeah
mshiltonj is there a place i can find info on the status of perl6 rfc 89 -- dev.perl.org/perl6/rfc/89.html -- if it is being implemented, etc. 16:02
stevan take gaal with you and you can cut throught he turkish mountains
nothingmuch mshiltonj: i doubt you'll find a formal status
the de facto situation on typing is pretty advanced though
(not as advanced as it's going to be but we do have some things) 16:03
but the rfc itself seems pretty far from what will eventually get implemented
mshiltonj k. but data typing of some sort will be there? 16:04
nothingmuch yes
i'm off to dinner
mshiltonj cool beans. thanks.
nothingmuch but i can explain a bit later if you like
kolibrie stevan: If nothingmuch and gaal bike to EuroOSCON, could we bike too?
fglock mshiltonj: rfc 089 was rejected (A04) 16:07
mshiltonj didn't know that. I'm interested in whether or not there will be data typing in perl6. If it's in perl, the specific implementation can vary. 16:11
fglock mshiltonj: see the second half of S06 - it's about the Type system 16:17
stevan kolibrie: we would need to swim a little too :) 16:22
nothingmuch evening 16:30
mshiltonj fglock: thanks! 16:32
fglock np 16:36
svnbot6 r7169 | autrijus++ | * first step at cabalizing Pugs -- first try at PIL (which works) 16:38
nothingmuch cabalizing?
autrijus nothingmuch: the eqv of M::B in Hs
enables libPugs.a
which means much easier linking
nothingmuch ah
autrijus nonbroken pugscc
and perl6 scripting for all hs programs 16:39
nothingmuch sounds fun 16:52
gaal hola 16:54
Limbic_Region kumusta ma na? 16:55
err kumusta ka na even
gaal Limbic_Region: what language is that? :) 16:56
fglock Limbic_Region: Magandang hapon 17:03
nothingmuch autrijus: how much effort do you estimate Inline::GHC will take? 17:04
Limbic_Region gaal - tagalog 17:06
and good localtime to you too fglock 17:07
gaal autrijus: do we have some sort of equivalent to p5's PL_compiling / PL_curcop? 17:29
geoffb fades in 17:35
autrijus, ETOOMUCHCOMPRESSION: the eqv of M::B in Hs
integral the equivalent of Module::Build in Haskell.
geoffb Equivalent and Haskell decompressed, but M::B wasn't in the dictionary window
integral, thanks
.oO( Man, it is *so* nice to see multiple commits per day from autrijus again )
17:36
stevan agrees very much with geoffb 17:38
geoffb (leased laptops)--
Limbic_Region s/very much/vehemently/ 17:39
geoffb tea++ 17:43
Life is just better with a warm cup of tea.
17:44 DesreveR is now known as r0nny
nothingmuch luqui: ping 17:57
did luqui ever mention if L::AG has a public repo somewhere? 18:08
Limbic_Region L::AG ? 18:28
is that the module he just released?
ah yes, Language::AttributeGrammar 18:30
kgftr|konobi stevan: does metamodel also help describe relationships between objects or just the objects and their structures? 18:33
stevan kgftr|konobi: it is the object model itself,.. which is both 18:34
kgftr|konobi stevan: hhhmmm... k 18:52
would that include things like data inheritance?
stevan yes sir 18:53
kgftr|konobi: there is a MM version of Test::Buidler in the ext/ directory (under perl5/Perl6-MetaModel2.0/ 18:54
kgftr|konobi =0o
stevan it is kind of ugly, but it demonstrates all the functionality needed by Test::Builder
kgftr|konobi then i'll wrap MetaModel with Data::Model to then wrap Class::DBI/Tangram/DBIx::Class objects 18:55
stevan LOL
uhm 18:56
I wouldnt suggest it with this metamodel
it is optimized for theoretical correctness
so it is largely unusable from any other p5 apps
however, I am planning to make a p5 usable version of it in the very near future 18:57
cause after this,.. I have no desire at all to return to the p5 OO world
Limbic_Region out of curiosity stevan 18:58
kgftr|konobi =0o
stevan give Limbic_Region some of his curiosity
Limbic_Region using MM Objects in p5 will be how easy
package Some::Object;
stevan Limbic_Region: not sure yet
Limbic_Region use Meta::Model;
and then ?
oh - well, nevermind then 18:59
I will wait until you are finished
stevan Limbic_Region: I would like to make it as simple as possble
Limbic_Region: see Class::C3 for an example
Limbic_Region salutations buu
stevan that swaps the normal method dispatch for C3
Limbic_Region stevan - I am weeks, if not months away from needing it
stevan its kind of hackish,.. but it is totally transparent 19:00
kgftr|konobi stevan: we'll need to have a chat at some point... to avoid duplicating efforts... but need to wait for me to get my mac
stevan which is what I would like the meta-model to be
kgftr|konobi: what are you doing?
Limbic_Region stevan - I have only pedagogal needs ATM - when I am at the point of discussing OO and how it got shoehorned into p5, I would like to be able to point to an alternative ;-) 19:03
kgftr|konobi stevan: providing standard interfaces and model descriptions for both persistent objects, etc and realtime objects, etc.
but in p5
kgftr|konobi ducks
stevan nice # both of you guys
kgftr|konobi should help me a bit more to make objects of different types to be more interoperable 19:04
19:44 buu_ is now known as buu
svnbot6 r7170 | stevan++ | just need to commit this for the other changes to work ... 20:03
r7171 | stevan++ | Perl6::MetaModel 2.0 - 20:08
r7171 | stevan++ | * over 50% speedup from optimizing chaos.pl, old chaos.pl moved
r7171 | stevan++ | to chaos_unoptimized.pl for reference
autrijus greetings 20:18
Limbic_Region salutations
stevan hey autrijus
Limbic_Region stevan - did that speed increase also lead to clarity in the code? 20:19
stevan Limbic_Region: LOL
a severe decrease in fact
Limbic_Region I wasn't trying to be facetious
stevan there are several functions which are called for each and every method call,..
autrijus if it becomes clearer, _unoptimized.pl wouldn't be there :) 20:20
Limbic_Region typically huge speed ups cause readability to change in either direction - or at least it has been my experience
stevan I optmized those to the point of unreadablility in some cases :)
Limbic_Region it either gets more readable because the crap has been removed and the elegance remains
stevan my personal favorite is WALKMETH
I will nopaste the change so you can see
Limbic_Region or it gets fugly because the elegant solution just doesn't have what it takes to be fast 20:21
gaal golf physics, 100 years ago today: www.fourmilab.ch/etexts/einstein/E_mc2/www/
(sorry, completely off topic, but hey.)
pasteling "stevan" at 67.186.136.119 pasted "changes in WALKMETH" (25 lines, 770B) at sial.org/pbot/13333 20:22
stevan Limbic_Region: as you can see,.. the optimized version is difficult to read at best
but that one alone was worth about 30% 20:23
so it was worth it
Limbic_Region yeah
but a lines of comment could make it just as readable and fast
autrijus ...for some reason the optimized one is easier to read to me
right, what Limbic_Region said.
Limbic_Region I was thinking it actually became obfusucated
gaal autrijus, i'm unsure about where to carry pragma list state in the parser
autrijus gaal: where else then? 20:24
in Env as $* ?
gaal heh, no, i meant where in the parser to put it :)
stevan Limbic_Region: the worst obsfucations in it are when I avoid unpacking sub parameters and use the @_ index
you would be supprised how much that shaves off if you do it enough
svnbot6 r7172 | stevan++ | Perl6::MetaModel 2.0 - 20:25
r7172 | stevan++ | * fixing the mutli-methods test
stevan that and some of the if/else statements were converted to boolean expressions
Limbic_Region stevan - I wasn't talking about your particular optimization - just optimizations in general that lead to less readability - they become unreadable
in your case it is easy to read
gaal the c patch does something i thought i grokked but now i think i don't, puts the list on the current cop; when a scope ends you automagically get the head pointer that was there just before the scope started
Limbic_Region but not necessarily easy to understand
adding the comments achieves both
stevan Limbic_Region: very true
gaal there's absolutely no code that handles that explictly, that's beautiful
i don't think we have an analogous structure though (so we?) 20:26
autrijus gaal: cop?
cop would just be annotation nodes.
but you are thinking of scope markers
and those would be Stmt boundaries I think
I have no problem of extending Stmts type 20:27
so you can write between the lines
so to speak
that will also get us goto LINE: support.
gaal grins
autrijus Stmts Cop Exp Exp
not neccessarly with the Cop name
but you get the idea.
gaal not quite sure that i do yet :/ 20:28
autrijus oh ok... the idea is that Stmts are cons for statements
gaal when i constuct a Stmts Exp, I need to copy the Cop from the last one.
autrijus Stmts exp1 (Stmts exp2 (Stmts exp3 Noop))
now we regulate that Cop are cumulative 20:29
gaal that part i do get
oh
autrijus Stmts cop1 exp1 (Stmts cop2 exp2 (...))
Limbic_Region notes the time and heads homewards
autrijus exp2 gets (cop2 . cop1)
gaal that point i *don't* :)
Limbic_Region stevan++ # good work
autrijus makes some sort of sense?
gaal where Cop is something like MkCop { Label :: String, Pragmas :: [Pragma], ... } ? 20:30
why does it need to be cumulative? 20:31
and, how does that get us scopy behavior?
autrijus it doesn't, to think about it. we can share structure
scope is easy; any Stmts cons belong to the same scope 20:32
gaal for lex prags, we do indeed share structure, as the list is immutable once installed; and *as* it's being installed it only gets prepended to.
autrijus because under scope boundary it will be wrapped in a App's body
gaal (if that's what you mean by share structure)
autrijus yes that's what I mean. 20:33
so it's just a ponter to a common heap pointer
{ 1; { 2 } }
the 2 is inside a App
of sub{2}
so we can easily see scope boundary
gaal ..so how do i know the latest value of the pragma list when i am consuming 2? 20:34
autrijus you ask your outer
aka envOuter
hm, bad idea 20:35
thinking
gaal it's not in the env...
autrijus I think it need to by in env.
envCop
gaal okay, so every Stmt constructed puts its Pragmas in envCop? yes, that is kinda analogous to p5 20:37
autrijus yeah, but that leaves us wondering why not just do it in VCode
ah, because of middle-of-scope starting points
so Stmts boundary is probably the way to go. 20:38
gaal so the cop carryover should probably go in ruleBlockBody? 20:39
autrijus right, that looks very sensible
but I'm not sure "cop" is a good name.
gaal Ann?
autrijus perhaps just "label" or "ann" or "pragmas" 20:40
depending on whethe we treat pragma as a kind of label
or a label a kind of a pragma
or neither as either and call it ann
gaal though you previously mentioned maybe "ann" for unifying Cxt and Pos
:-)
autrijus indeed. so maybe Label?
gaal Desc? :)
autrijus your choice. :) Desc is oka 20:41
y
gaal okay, Label first and if I think of something better I'll change it.
autrijus nothingmuch: re Inline::GHC, I think with the new libGHC stuff it'd be downright trivial 20:42
sadly it's GHC 6.6, still 3 months away
happily we're not in any particular rush for that.
clkao agent tang, i was trying to play with pil-run, but it seemed slow and not evening running "say 'ok'" 20:43
autrijus I think you are in the middle of mm2 switch. 20:44
the version 36 hours ago should work much better :)
clkao: 20:45
$ ./pugs -BPerl5 -e'say "ok"'
ok
workedforme actually
gaal my fridge just croaked.
autrijus wow.
gaal too bad, i made a big food purchase two days ago :( 20:46
clkao autrijus: it works now, you still have account on my laptop haven't you :) 20:48
autrijus I see 20:49
svnbot6 r7173 | rafl++ | * Fixed shebang for examples/irclog.html.p6 21:00
clkao 0/win21 21:01
svnbot6 r7174 | rafl++ | * Fixed shebang for ext/Algorithm-TokenBucket/t/test.t. 21:05
gaal if we now have Stmts Label Exp Exp, how to tweak mergeStmts not to lose label information? 21:08
or should the envLabel-writing be done there? 21:09
zzzZZZZ & 21:13
putter stevan: it looks like use Perl6::MetaModel; print eval("my \$Foo = \$::Class->new('\$.name'=>'Foo'); \$Foo->superclasses([ \$::Object ]); \$Foo->new();"); is still printing #<AnonClass=(9)>, which seems unlikely to be correct. Any thoughts? 21:28
08_multi_methods.t is now all ok. :) 21:34
my, that _is_ sprightly. stevan++ 21:38
Current performance should be fine for the indefinite future. Thanks stevan. 21:40
geoffb I take it the improvement was better than the 50% he claimed? 21:41
putter hopefully I'll be able to spend an hour or so this evening (t+5hr) debugging pilrun on mm2. 21:42
geoffb: not sure. subjective impression is yes. but you know how reliable those are.
geoffb nodnod
putter ok. cheers & 21:44
geoffb cheers
svnbot6 r7175 | fglock++ | * perl5/List - 'a'..'zzz' is now supported 21:54
buu Yay! 21:57
Now what about "b"--
geoffb It's Perl 5, buu, go crazy. :-) 21:58
fglock buu: "b" is a constant, but $a="b"; $a-- should work (it doesn't, currently) 21:59
svnbot6 r7176 | fglock++ | * perl5/Value - log update
r7177 | fglock++ | * pil-run - fixed $a++ and $a-- when $a is a Str 22:05
r7178 | fglock++ | * pil-run - fixed prefix "++" and "--". 22:11
r7178 | fglock++ | - postfix "++" and "--" are broken - need Scalar.clone() to work properly
r7179 | fglock++ | * pil-run - added very basic support for Junctions 22:47
r7179 | fglock++ | - pil-run try to stringify Junction as a number (which is wrong)