pugscode.org <Overview Journal Logs> | smoke/win2k (occasional): xrl.us/fqum (4537/8, r2343), Mac OS X (160/4483, r2216), Linux (60/4482, 2267) | pugs.kwiki.org
Set by Corion on 25 April 2005.
Limbic_Region what is the p6 way to get the index of the last element of an array (in p5 $#array) ?? 00:13
mugwump @array.count or something 00:16
Limbic_Region you mean @array.elems ? 00:18
mugwump sure, or +@array
Limbic_Region either way - it doesn't sound like $#array
my $last = @array.elems - 1; # seems wrong
mugwump hmm, wouldn't that be: 00:19
my $last = @array[+@array-1]
or just: 00:20
my $last = @array[-1]
Limbic_Region no - don't want the value of the last element 00:21
want the index
p5's $#array
mugwump ok
Limbic_Region what I am using right now is my $last = @array.elems - 1; # seems wrong
mugwump @foo.end 00:22
from S02
Limbic_Region salamat 00:23
mugwump pulls the latest pugs version to see if .end is in it 00:24
Limbic_Region doesn't appear to be implemented yet
mugwump care to add a test for it? 00:25
I'll try my hand at the implementation
Limbic_Region mugwump - as soon as I am finished writing my purty code
mugwump ok
Limbic_Region theres another thing that doesn't quite work right yet either
my @foo = grep defined, @bar;
my @foo = grep { defined } @bar;
those two don't work
my @foo = grep { defined $_ } @bar; # does work 00:26
on the other hand 00:27
my @foo = grep defined(), @bar; # appears to be working
mugwump add a test for it somewhere, if you can 00:29
Limbic_Region mugwump - just installed Pugs for the first time - my very first p6 program - give me a chance to catch up
:P
mugwump cool. sure, take your time. 00:30
wolverian Limbic_Region: grep EXPR, LIST; is invalid in perl6 00:34
Limbic_Region: the only form is grep BLOCK LIST; (and the method form of course)
Limbic_Region thanks wolverian 00:35
now what about array slices?
wolverian what about them? 00:36
mugwump Detailed in S06
oops, not 6
S09 00:37
wolverian (if grep defined(), @bar; works in pugs, it's a bug)
Limbic_Region appeared to work - it didn't
wolverian ah, good. 00:38
gantrixx will the final implementation of perl6 be written in Haskell? 00:49
wolverian no. it will be written in perl6. 00:51
see svn.perl.org/perl6/pugs/trunk/docs/...rview.html
gantrixx OK, so let me understand something....when it says "The Perl 6 compiler needs to be written in Perl 6 itself", I assume they mean Parrot=Perl6 compiler, correct? 00:53
mauke no, parrot is the perl6 interpreter
wolverian no.
parrot is the VM.
stevan gantrixx: we are using haskell to bootstrap the perl6 compiler
gantrixx OK, I see 00:54
wolverian (and JITter)
Limbic_Region should last if defined @subset[ $pos ]; 01:06
work?
mugwump - you still around? 01:07
mugwump ping 01:08
scw autrijus: did I do that? @@ # 03:59 < autrijus> scw: why did you remove output/fp/fp. 01:12
Limbic_Region perlmonks.org/index.pl?node_id=451398 # YEAH, my first p6/pugs code 01:13
mugwump Limbic_Region: pong
scw autrijus: I'll check..
Limbic_Region mugwump - going to write the @array.end test - should I email it to you?
I don't have commit access
I also need to know if: last if defined @subset[ $pos ]; # should work? 01:14
scw autrijus: r2316.. I don't remember doing that, might be some missuse of svk, i think 01:16
ninereasons Limbic_Region, I believe that that's proper p6, but 'if' occuring in that pattern is broken right now. 01:17
Limbic_Region also - while ( my @combo = $next() ) { # doesn't appear to work
I have to do: my @combo; while ( @combo = $next() ) { # to get it to work 01:18
ninereasons if rewritten "if defined @subset[ $pos ] { last } # this will work, I think. 01:19
and the second one will probably be written "while $next() -> @combo {...} " # look equivalent?
Limbic_Region that's what I did ninereasons
Limbic_Region didn't think of that - let me try it 01:20
choked on that too ninereasons
ok - so the 3 things I found is no @array.end, last if defined @array[ $index ], and while ( my @array = $ref() ) { ... } 01:23
stevan Limbic_Region: I can set you up with commit access :)
Limbic_Region: next, and redo dont work yet I was thinking of writing tests for them myself, but you can if you want :)
oh wait,.. misread your comment 01:24
Limbic_Region stevan - not tonight
stevan while (my @array ... wont work because my currently is only suppoted outside of expressions
Limbic_Region yeah - I worked around it
stevan Limbic_Region: want commit access though? it only takes a second
and doesnt hurt at all 01:25
Limbic_Region no - because then I will be responsible for checking stuff in
let me ease into this
Limbic_Region just installed Pugs and wrote his first p6 program tonight
stevan LOL
Limbic_Region perlmonks.org/index.pl?node_id=451398
stevan do you have SVN
Limbic_Region svk
stevan then checking in is very simple :)
I would like you to check in this code to examples 01:26
Limbic_Region alright
stevan email addy?
Limbic_Region you tell me how and I will be much obliged
[email@hidden.address]
stevan Limbic_Region: I would be glad too
Limbic_Region is known meatspace as Joshua Gatcomb btw 01:27
stevan whoops looks like someone tripped over the ethernet cord at castorbaways house :) 01:28
Limbic_Region heh
stevan Limbic_Region: your invite is in the mail 01:29
stevan goes to see how to checkin with svk now :) 01:30
looks like you just mv the file into examples/ 01:31
then svk add examples/<filename>
Limbic_Region I will be prompted for user/pass? 01:32
stevan then 'svk ci' to commit locally, and 'svk push' to send it up to openfoundry
Limbic_Region: yes, I think it will ask when you try to commit
(at least that is how SVN works)
Limbic_Region alright - should it just go under examples?
stevan sure
and dont forget to add yourself to the AUTHORS file 01:33
Limbic_Region do I add a comment - I got a notepad window up 01:35
Limbic_Region assumes it is for the log
stevan yes, anything you like :)
yup, for the log
Limbic_Region goes before the === Targets to commit line? 01:36
stevan I am not sure i understand what you are asking? 01:37
Limbic_Region not working WRT to username
don't worry about it - I will figure it out
stevan ok
Limbic_Region assumes USERNAME is taken from ENV and just fakes it for now 01:39
stevan probably a good assumption, but I cannot say since I use SVN and not SVK
although I have been meaning to get around to using SVK
Limbic_Region grrr - bad assumption 01:40
mugwump it should prompt you for a username once the first try fails 01:41
Limbic_Region ;-)
ninereasons that's what happens in svn, anyway. 01:42
Limbic_Region ok - it appears svk ci did more than commit locally
can someone tell me if it worked
;-)
ninereasons svk log ? 01:43
stevan Limbic_Region: it worked
Limbic_Region cool
stevan but you didnt add yourself to AUTHORS 01:44
Limbic_Region but I forgot to add myself to the AUTHORS file
stevan :)
feel free to write your name in Tagalog too :)
ninereasons stevan, is the while loop going to use an arrow for assingment, just like the for loop does? 01:46
mugwump while loop using arrow for assignment? eh? :)
stevan ninereasons: not sure
mugwump you mean the -> $x { } block syntax?
stevan mugwump: I think he means topicalization
ninereasons yes, mugwump 01:47
right.
toc
Limbic_Region ok - well, that's it for me tonight
stevan Limbic_Region: welcome aboard :)
Limbic_Region I will summarize the things I want that don't currently work and possibly write tests for them tomorrow
mugwump Limbic_Region: did you commit a test for .end?
Limbic_Region no mugwump - I asked you about it earlier - no response
and then stevan conned me into get commit access 01:48
jabbot pugs - 2347 - Generate lists powerset in progressive o
pugs - 2348 - Forgot to update AUTHORS file
Limbic_Region but I am out of time now
mugwump sure... be sure to commit it when you can! :)
Limbic_Region I will likely make it available here for someone else to commit since I won't be able to from work 01:49
so it would have to wait until tomorrow evening
and tomorrow evening is busy - final walk through (closing on house on Wednesday)
stevan Limbic_Region: what better way to celebrate your new home then by commiting tests to Pugs :) 01:51
Limbic_Region use.perl.org/~Limbic%20Region/journal/24371 # summary of tests that I am going to attempt to write tomorrow 01:55
and on that note - TTFN all
ninereasons what do you think, mugwump ? is it going to be "while (my $var = something() ) { ... } " ; or will it sometimes make sense to say, while something() -> $var { ... } ; ? 01:56
wolverian for something -> $var { ... }, I'd say 01:57
mugwump but, that will only call something() once 01:58
jabbot pugs - 2349 -
pugs - 2350 - implement @array.end
wolverian and lists are lazy.. 01:59
mugwump ok, from S04: 02:01
for =something() -> $foo { }
a nice little higher order for loop for you :) 02:02
ninereasons there, I see it: " while =$*IN -> $line {...}" 02:03
mugwump nods
looks like both for and while can be used like that 02:04
ninereasons I like that. the arrow is very "act upon" implying 02:05
mugwump very ruby-esque
(not the arrow, but the form) 02:06
ninereasons I wouldn't know. but there I hear that there is much to admire in ruby.
s/there//
mugwump indeed 02:07
mugwump & # meeting
ninereasons s/to admire/to steal/
:-)
obra autrijus++ 02:30
make smoke: real 4m37.942s
genuinely 50% faster than 48 hours ago
stevan obra: what revision are you running? 02:31
I am getting seg faults for everything 02:32
(I just rm-ed src
so that might help)
obra stevan: head 02:33
stevan hmm, ok maybe I had some bad stuff in src/ 02:34
ninereasons I also was getting segfaults in everything until I removed the src/ directory, stevan 02:35
stevan ninereasons: good to know :) 02:36
I think make clean is not cleaning up enough
02:40 metaperl__ is now known as metaperl_
mugwump Gosh, BrowserUk on perlmonks is so full of shit 02:43
Khisanth the guy that can't admit he is wrong? :) 02:44
mugwump his mind is as open as a amish woman's legs
s/a /an / 02:45
Khisanth are you sure you know amish women well enough? 02:46
mugwump heh. Well, I don't "know" any ;)
jabbot pugs - 2351 - remove non-working sub 03:28
pugs - 2352 - more refactoring for the tic-tac-toe 03:38
gantrixx so, is pugs a compiler? 03:55
mugwump yes
and an interpreter. 03:56
what are you really asking? :)
gantrixx pugscc is the compiler and pugs is the interpreter?
I'm wondering how I can write perl6 code
I assumed I would be able to #!/usr/bin/perl6 and it would be automatically compiled and interpreted by parrot 03:57
or I was hoping
mugwump you'll need to set up a symlink for that to work
gantrixx I see what was installed, but I don't understand how to use pugs 03:58
mugwump `pugs' can be used like `perl'
actually running via parrot (rather than just pugs) is an `experimental' option of pugscc
gantrixx ok, great 03:59
so when I use pugs, it's not using parrot at all? 04:00
mugwump not yet / by default
gantrixx but I can compile into parrot with pugscc --parrot ? 04:01
mugwump yes, that should leave you with parrot bytecode
gantrixx ok, let me figure out how to get parrot to interpret it 04:02
ok, so out of pugscc, am I expecting a source.pasm file? 04:10
I get an .imc file 04:11
mugwump oh, ok. maybe imcc will give you the .pasm or .parrot file 04:15
I'm not sure, I thought that "just worked", looking at the pugscc script
gantrixx sorry guys, I feel like an idiot asking all these questions 04:16
well I get a .imc file, but it is 0 length
but I was able to get the #!/usr/bin/pugs thing to work
mugwump ok. does pugscc --runparrot work for you? 04:17
gantrixx let me try
I still get a 0 length .imc file
mugwump it must be failing without raising an error, then :( 04:18
jabbot pugs - 2353 - * avoid name clash by renaming fp/ into
pugs - 2354 - * point-free the .end implementation for
gantrixx I've done pugscc --run --parrot test.p6, pubscc --runparrot test.p6 04:19
both result in a 0 length test.imc
should the output be an .imc file?
ninereasons pugscc --runparrot -e 'say "hello"' # gives me a.pir
parrot a.pir # prints "hello" 04:20
gantrixx I get a.imc
and it is 0 length
I have pugs 6.2.0 04:21
ninereasons mine is r2350; maybe that's it
6.2.1
gantrixx, I had some cleaning out of my own to do; I now get a *.imc file when I run pugscc 04:32
gantrixx ok, well now I get a non-0 lenght .imc file
ninereasons pugscc --run --parrot examples/mandel.p6; # produces mandel.imc
gantrixx but it it only compiles a simple "hola mundo" program
mugwump not all pugs AST nodes have IMC written for them yet 04:34
gantrixx pugs: Cannot compile: App "&elems" [Var "@array"] []
this is the error I get
so maybe that corresponds to what you said
ninereasons pugs -e "my @a = 1..3; say @a.elems " ; # what do you get if you say this at the command line 04:35
gantrixx 3 04:36
In my program I simply have "my @array = ( "red", "blue", "green", "white", "black" ); print "There are " ~ @array.elems ~ " elemements\n"; " 04:37
it works if I use #!/usr/bin/pugs 04:38
but I can't compile it with pugscc
ninereasons sorry - i was distracted; you answered my next question 04:39
are you able to run the mandel.p6 example, gantrixx ? 04:40
gantrixx when I do a #!/usr/bin/pugs it is actually compiling it first and then feeding it to the pugs interpreter, right?
let me try the fractal example
mandlebrot seems to work 04:41
and I can do a "parrot mandel.imc" and it works fine also 04:42
ninereasons you can see how much faster parrot is than pugs, by running that script with pugs for comparison 04:43
gantrixx ok, let me mimic some of the stuff in the mandel.p6 script
and see if I can get my little test to work
05:03 joepurl_ is now known as joepurl 05:56 chady_ is now known as chady 06:16 metaperl__ is now known as metaperl_
Khisanth I really hope perl6 is going to be easier for highlighters ... at the very least for text editors written in perl6 06:37
castaway1 ,) 06:39
06:39 castaway1 is now known as castaway
nothingmuch i think it's going to be much harder 06:52
macros are no fun
new infix ops that affect parsing
i think an editor without an embedded p6c couldn't do it 06:53
that aside: good morning
by new infix ops - i mean ones the user defines
castaway mornin nothingmuch 06:56
07:12 wilx` is now known as wilx
osfameron eek! 08:08
foo (3) + 4; # foo(7)
where is the rtfm that explains why this is a good idea? 08:09
castaway (3) is just a mathematical expression that reduces to 3, would be my guess 08:10
(ie its being clever in context)
hm, although I suppose its a question of precedence 08:11
osfameron the counter example is: 08:12
foo(3) + 4; # foo(3)
pjcj that's always been slightly dodgy ground in perl5
osfameron where because there's no whitespace the parens surrounds the function's arguments entirely
I think I've converted to javascripty () for arglists ;-) 08:13
castaway hmm, significant whitespace is indeed somewhat odd 08:15
Khisanth unavoidable 08:18
castaway It isnt, just make people add parens where the meaning is ambiguous, like in math 08:20
foo (3) + 4 -> foo(3); foo (3+4) -> foo(7)
08:22 chady is now known as chady_
Khisanth what is foo (3+4) + 4? :) 08:22
castaway: having significant whitespace is not as bad as having exceptions to rules 08:24
Juerd castaway: No, those are both foo(7)
Khisanth: foo(11)
castaway: The () for function calls is not the same () you use for precedence grouping 08:25
castaway: The () that is part of the sub call syntax works like subscripting [] or {}
Khisanth we need a bigger keyboard with more brackets :)
Juerd castaway: whitespace disallowed, unless you add a dot 08:26
castaway: The rules change consistently from Perl 5 to Perl 6: in Perl 5 you could use whitespace with all three of postcircumfix (), [] and {}. 08:27
castaway Juerd, that was just my opinion of how it would make sense to me
osfameron is the reason for this documented somewhere?
Juerd osfameron: I don't know. It's easier to re-explain than to find it in the docs
osfameron ah! 08:28
Juerd osfameron: for @foo { ... } needs whitespace
Khisanth the problem with "add parens where the meaning is ambiguous" is that it leads to lisp :)
Juerd osfameron: And given $foo{ ... } is incomplete, needs a block, because $foo is used as a hashref
osfameron: So the rules for subscripting need to change to disallow whitespace
osfameron ok, I'm fairly happy with the subscripting stuf 08:29
Juerd osfameron: This applies to postcircumfix () as well, which is syntactically just subscripting
osfameron oh
Khisanth Juerd: what would @foo{...} get mistaken for?
Juerd osfameron: Which finally makes it newbie-friendly
osfameron Juerd: `foo (3+4) + 5` is not osfameron-friendly
Juerd (And Juerd-friendly, because it will now behave the way I had always expected... The problem is that different people expect different things from this. Some expect Perl 5 behaviour, some want the Perl 6 way)
castaway hmms and shrugs, cos she doesnt generally put spaces between funcnames and parens anyway 08:30
Juerd Khisanth: hash deref on @foo
Khisanth: It's entirely okay to implement a postcircumfix {} operator for arrays if you want to.
Khisanth oh that is going to make for some fun mistakes that work even though it wasn't intended
castaway struggles to build PAR .. anyone ever try that on HP-UX ? 09:13
Juerd castaway: I get the feeling HPUX was never meant to be used :) 09:32
castaway hmm, according to the docs its supposed to work on HP
regardless of your feelings, people use it. 09:33
Juerd It's that way with many things 09:37
Like bondage SM
I think it's not human and can't possibly be pleasant, but there are indeed people who practice it.
draven_ Juerd: you are weird :p 09:39
bsb Anyone run pugs under ghci? 09:40
Juerd whips draven_ 09:41
Do you like that? 09:42
draven_ jizzes on juerd.
Juerd Don't do that.
draven_ :D
you started it :p
actually, I'm not into submission 09:43
<g>
castaway concludes shes running the wrong ld, since it doesnt like the options that perl -V suggests were used on build
Juerd Then this beautiful leather dog collar is not for you.
No {J} for you. 09:44
draven_ Juerd: guess not.
Juerd draven_: But your nice is lcfirst.
draven_: Don't mislead people like that.
09:44 draven_ is now known as Draven
Draven better? 09:44
Juerd Draven: Well, if you're dominant, it suits better. 09:45
Draven mhm
Juerd: for someone who doesn't understand why people would like it, you sure know alot about it :)
Juerd I've hosted an IRC server for some bdsm channels
Learned quite a lot about their customs :)
pasteling "bsb" at 203.214.67.82 pasted "hasktags Makefile.PL patch" (21 lines, 609B) at sial.org/pbot/9660 10:14
bsb does that patch look harmless?
I don't want to make a mess
theorbtwo Looks good to me, bsb. 10:21
bsb happy day 10:22
ghci -isrc src/Main.hs ./src/pcre/pcre.o src/UnicodeC.o
isn't going to work tonight so I'll leave that 10:23
theorbtwo Try make ghci. 10:25
bsb GHCi runtime linker: fatal error: I found a duplicate definition for symbol 10:28
blkcmp
whilst processing object file
src/UnicodeC.o
jabbot pugs - 2355 - $ENV{HASKTAGS} override
theorbtwo Nod, didn't think that'd work either.
But it was worth a try.
bsb ta 10:29
10:29 Aragone is now known as Arathorn
nothingmuch just helped someone install ubunto on top of colinux 12:02
with a rootless xwin
trƩs cool
works very well
castaway whats colinux ? 12:19
decay castaway: www.colinux.org/ 12:21
castaway can talk in urls too :) 12:22
decay castaway: not much more to say about it, it works quite ok 12:28
castaway well, you could give a brief synopsis for lazy people :) 12:29
decay think of a user mode linux running on windows
castaway hmm, interesting.. I wonder how/why they got further than plex86, who seem to have given up 12:30
decay well, it's not a virtual machine if i understand that correctly 12:33
castaway I'm not at all sure what "cooperatively alongside" means.. 12:34
theorbtwo It looks very nifty. 12:36
Your real machine runs both windows and linux at the same time.
It's somewhere inbetween a virtual machine like vmware, qemu, etc, and a dual-boot computer. 12:37
decay it's more like the uml linux kernel which runs in userland 12:38
i think they do not 'emulate' a machine in there.
castaway what does "at the same time" mean?
decay castaway: it runs as a process
castaway I mean, I understand the text, but it doesnt sound possible 12:39
a Windows process?
decay castaway: sure
theorbtwo Apparently it is.
castaway (a kernel process, a cpu process ?)
decay castaway: we have some boxes here running 32 uml linux kernels in userland
castaway has never been to userland :)
decay castaway: a process as seen by windows xp, a program 12:40
castaway ah, so it is running "under" windows
decay yes
castaway Ok, I wouldnt define that as "alongside"
decay castaway: if you're interested in that you might take a look at xen 12:41
castaway: which runs them 'alongside', though it's specially adapted OS versions/kernels running where with support for virtualized hardware 12:42
Limbic_Region ok - so after stevan rooked me into commit access, I need to write some tests for some features I found lacking
any guide to writing tests?
castaway Test::Tutorial ? or p6 ones in particular ?
Limbic_Region p6 ones specifically 12:43
like for instance - @array.end is missing - where do I add it
gaal_ t/README 12:44
and welcome :)
castaway I think thats mostly up to intuition, I dont think theres a roadmap
Limbic_Region thanks gaal - did you see my powerset in progressive order example?
gaal_ no, i wasn't around most of today - where is it? 12:45
Limbic_Region there is also one thing I forgot to add to the list in my journal of things that didn't work as I expected. my $foo = sub returns List { ... }
examples/progressive_powerset.p6 or powerset_progressive.p6 - not sure which
you can assign an anonymous sub to a scalar but you can indicate what it returns (currently) 12:46
castaway guesses "t/builtins/arrays
Limbic_Region thanks castaway
Limbic_Region hugs castaway
castaway and possibly 'end.t' since strings/ has a whole bunch of files named after operations that can be done on them 12:48
Limbic_Region .end isn't for arrays only? 12:49
Limbic_Region had already planned on naming the test end.t btw
castaway :)
no idea, but looking at the t/ layout, if it turns up in multiple places, you eitehr create 2, or make something like arrays_and_hashes 12:50
(although that may be interaction-of, not shared-funcs
castaway could also be FOS ,) 12:51
Limbic_Region ok - so can I email t/builtins/arrays/end.t to someone with commit access - I can't commit from work 12:58
autrijus why?
this is HTTP port 80
your company isn't DAV aware?
rehi lambdacamels, btw.
castaway its an autrijus!
Limbic_Region autrijus - company = U.S. Government
autrijus Limbic_Region: hm. so, it's a policy problem, not a technical one? 12:59
Limbic_Region and I forgot to burn a copy of GHC/Pugs/svk to bring in this morning anyway
autrijus you can always DAV mount using Win32 web folder and just copy your files there... :) 13:00
but sure, nopaste the code and I'll commit for you
Limbic_Region autrijus - all HTTP traffic goes through a proxy that is monitored
perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pasteling "Limbic_Region" at 129.33.119.12 pasted "t/builtins/arrays/end.t" (34 lines, 662B) at sial.org/pbot/9662 13:01
autrijus Limbic_Region: committed (and it all passes) 13:03
thanks!
Limbic_Region walang anuman
so it is already implemented?
autrijus sure 13:04
I think mugwump did it
right after your request
which is usual around here
Limbic_Region out of curiosity, what does @foo.end return if all of the elements are shifted off (i.e. does it give -1)
autrijus -1 surely
pugs> ().end
-1
Limbic_Region should have included that as a test
castaway You didnt? :) 13:05
autrijus my @array = ();
is(@array.end, -1, 'we have an empty list');
I think it's good enough
Limbic_Region castaway - I wrote a test for initializing empty - not returning to empty
autrijus - did you get a chance to see use.perl.org/~Limbic%20Region/journal/24371 13:06
beyond the 4 that I mentioned, my $foo = sub returns List { ... }; # doesn't work either
was wondering which would be considered low hanging fruit so that I could write some more tests 13:07
autrijus ok... 13:08
I think I fixed your #2
would be wonderful if there's a test
jabbot pugs - 2356 - C* @array.end tests, from Limbic_Region
Limbic_Region autrijus - run perlmonks.org/index.pl?node_id=451398 and tell me if it works - if so, it worked for sure 13:10
autrijus looking 13:11
Limbic_Region I will start looking at any existing tests for last and supplement in the interim
autrijus Limbic_Region: it works 13:12
Limbic_Region good ;-) 13:13
Limbic_Region thinks about p5 behavior WRT to last in a subroutine and wonders if the behavior in p6 has been defined
theorbtwo Larry's example code uses the p5ish behavior to next to the next canidate in something like multimethod dispatch, IIRC. 13:14
Limbic_Region theorbtwo - what I mean is when you f'up and put last to exit a sub (p5 let's you do it but issues warnings) 13:16
Limbic_Region still hasn't found any existing last tests 13:17
autrijus Limbic_Region: I'm not sure that
while (my $foo = ...) { ... $foo ... }
works
can someone find a reference?
jabbot pugs - 2357 - * `last if foo` is now parsed always as 13:18
pugs - 2358 - * much better error messages overall.
pugs - 2359 - * remove mention of DynamicLoader
Limbic_Region autrijus - the alternative would be while ( $ref() -> @foo ) { ... } right
autrijus huh? 13:19
no
Limbic_Region like a for loop?
autrijus my $foo; while $foo = blah() { ... }
or
while my $foo = blah() { ... };
Limbic_Region so things like while ( my $line = <FH> ) { ... } # won't work anymore either? 13:20
autrijus but never
while (my $foo = blah()) { ... };
er nvm
() is not {}
so it does work
but it doesn't work like you think it does
Limbic_Region doesn't
autrijus because the my() scope extends to outward
Limbic_Region ok - so educate me
autrijus sub bar { while (my $foo) {...} ; say $foo }
machack666 @array.end == -1 seems like bad behavior to me, or at least unexpected behavior
autrijus is legal!
machack666: 13:21
$ perl -e 'die $#array'
-1 at -e line 1.
machack666 perhaps it should return undef
Limbic_Region machack666 - p5 behavior
machack666 never used @#array
:)
autrijus Limbic_Region: the point is there's no implicit blocks
castaway autrijus: can I bug you about some of your p5 modules? :)
autrijus so the my() always terminates to the next }
machack666 I fuess if there's a precident
autrijus castaway: sure
Limbic_Region: as such, talking about my() in while () conditions is likely to be not very precise
Limbic_Region autrijus - I am fine with learning new syntax 13:22
autrijus see p6bible s04
grep for "while my"
Limbic_Region ok
will do
castaway The first is Module::ScanDeps.. which is supposed to not list Core modules per default, yes? I'm using 5.6.1 and its listing Storable, and MIME::QuotedPrint ..
.. on HP-UX11 .. any idea why?
Juerd p6l++, especially luqui++ 13:23
# clear and useful answers
castaway It's also listing XML::Parser which I'm fairly cerain I'm not using (but am using XML::Simple and XML::SAX)
machack666 perl -e '$ar[$#ar]=1;print @ar'
Modification of non-creatable array value attempted, subscript -1 at -e line 1.
autrijus castaway:
Storable was first released with perl 5.007003
MIME::QuotedPrint was first released with perl 5.007003 13:24
so.
broquaint IIRC, while my $foo = bar() { ... } still works as expected since while will be a funky statement/macro dealie so that $foo is scoped to the block.
autrijus broquaint: s04 contradicts with you :)
castaway goes back to check
broquaint Damn synopses ;)
autrijus (The "while"ā€™s declaration of $line conā€ tinues to be visible past the end of the block. Remember, no implicit block scopes.)
castaway well I suppose that explains that bit, I'm just daft.. 13:25
Limbic_Region so the bottom line is that it requires additional typing
castaway any idea about the XML::Parser one?
broquaint hopes placeholders will replace loop variables in terms of programming practices 13:27
autrijus I think it does recursive dep
and XML::Simple depend on ::Parser
Limbic_Region autrijus - know a reference off the top of your head that says no implicit block scopes? I am ashamed to admit that other than an initial read on release, I am not overly familiar with the As/Es/Ss
autrijus Limbic_Region: install Perl6::Bible
and "p6bible s04"
read "The Relationship of Blocks and Declarations 13:28
castaway no, it doesnt depend on it
It likes XML::Parser if present, if not, then not
(and I'm using XML::SAX as the parser)
or do: tnx.nl/S04
Limbic_Region autrijus - thanks - I just needed to search for implicit in s04
autrijus oh. scandeps has no notion of optional dependency. 13:29
castaway hmm, damn
so attempting to 'par' that up would fail ?
autrijus hm?
if your system has no XML::Parser, par will just ignore that 13:30
castaway par uses ScanDeps to figure out what to pack, no?
autrijus and hope you know what you're doing
castaway well it does, but I dont want it :)
autrijus oh.
Limbic_Region autrijus - so there should be a way to declare formal parameters and achieve the same thing as my right?
while $ref() -> @foo { ... }
castaway I'm attempting to figure out what a customer machine would need, and the fact that our internal dev machine has XML::Parser in its site_perl is irrevelant
In theory I'd like to say 'use perls std path but my site_perl only' 13:31
machack666 Is "closure traits" the terminology for ENTER {...}, PRE {...}, POST {...}, etc?
castaway anyway, since my other problem is that PAR is failing to compile, thats partly irrelevant too :)
theorbtwo autrijus: Are you interested in an alternative to ScanDeps that does live dependencies?
It's fairly easy to write using coderefs in @INC. 13:32
machack666 me: yes
Juerd Limbic_Region: Interesting syntax
Limbic_Region or rather while = $ref() -> @foo { ... }
Juerd Huh?
Limbic_Region Juerd - looking at S4
Juerd I could follow the previous syntax - it puts the condition into @foo
But this?
Limbic_Region the closest example of what I want is
machack666 What is the support status of the various closure traits? 13:33
Limbic_Region while =$*IN -> $line {...}
Juerd Limbic_Region: $ref() now returns an iterator?
Limbic_Region: And isn't it rather weird to have a sub return the same iterator more than once?!
Limbic_Region Juerd - no, it returns a list
autrijus theorbtwo:
scandeps has that mode.
Juerd Limbic_Region: while's condition is executed before each iteration
autrijus scandeps -c
scandeps -x
using perl -c and perl, respectively 13:34
Limbic_Region right
theorbtwo Oh.
Juerd Limbic_Region: So it returns a new list each time, which each time is converted to an iterator, which you kick only once.
Limbic_Region Juerd - see www.perlmonks.org/index.pl?node_id=451398
I am trying to get my cake and eat it to (like I did in p5)
while ( my @foo = $ref->() ) { ... }
Juerd never gets the cake references 13:35
machack666 machack666: no support for BEGIN {...}, so I'd guess that none are supported.
Juerd Limbic_Region: That should work,
Limbic_Region not according to autrijus and possible S4
Juerd Limbic_Region: I think your mistake is calling your iterator "next". That's misleading.
Limbic_Region no implicit block scopes
Juerd Or assuming that iterators are coderefs
autrijus Limbic_Region: it works
Limbic_Region as of when? 13:36
autrijus I'm just saying that the @foo will be visible post the {...}
which is likely bad
Limbic_Region didn't work last night when I was trying it
autrijus i.e. not what you expect
Limbic_Region no autrijus - it didn't work at all
autrijus er. I was donning my p6l hat.
autrijus switches to the p6c hat
it's not yet implemented, but if you write a test, sure, it will work in a matter of minutes! 13:37
castaway -c and -x seem to compile&inspect %INC .. AND do static scanning.. which is not v. useful IMO
autrijus castaway: patches.... welcome :)
Limbic_Region well what I am really interested in is figuring out how to do it properly in p6
castaway autrijus: no time :)
castaway points at theorbtwo
autrijus (it fits my use case)
Limbic_Region basically, loop until the function being called each time returns undef 13:38
autrijus if you are using PAR
try
pp --exclude XML::Parser
and see if that works
it may or may not.
castaway autrijus: that was the pther problem: par wont compile for me, I get ld errors
Limbic_Region put the result of that function in a formal parameter or whatever so that I can use it inside the loop
autrijus I think it does, but that part of my code
castaway: really. platform?
castaway HP-UX11
autrijus that's a new one. 13:39
try [email@hidden.address]
castaway I have a sneaking feeling its a wrong ld tho, it chokes on options that perl -V claims to have used.
but the fun bit is the:
Limbic_Region do you have to be subscribed to p6.l to post to it?
castaway ld: Unsatisfied symbols: 13:40
$global$ (data)
mm, could do that..
Juerd Limbic_Region: Nafaik 13:42
Limbic_Region: It's common for Perl lists that you can post to them and read them without being subscribed
autrijus but then you will wait for moderation
xerox
castaway asks the same question for [email@hidden.address] (subscribe compulsory?)
Juerd 13:43
autrijus castaway: no, I don't think so
all @perl.org follows the same process
Juerd autrijus: That's strange, as my messages appear almost instantaneously and I send mail from another address than is subscribed
autrijus afaict
Limbic_Region ok - email sent to p6.l 13:48
I am off for a bit, will write some more tests later - thanks everyone 13:49
castaway sends a mail full of make output and perl -V to [email@hidden.address] .. 13:51
Limbic_Region oh - before I go, if someone wants to ping me with the location of any existing tests for "last", I will supplement them with the changes autrijus made to make last if defined @array[ $index ]; work
castaway goes back to doing things my hand (darn HP-UX) 13:52
autrijus purrs 13:54
I hear HP-UX is even deader than AIX
castaway heh, everyone says that whenever I mention it 13:55
still, customers are still picking it
So this is an odd form of "dead" 13:58
autrijus undead then
the undead OS that roams the earth 13:59
castaway Personally, from this perspective, it looks alive and kicking.
theorbtwo That's one awful big zombie process, autrijus.
autrijus :D 14:00
Arathorn i thought irix was the undead OS that roams the earth..
stevan Limbic_Region: ping 14:01
morning all :)
Limbic_Region pong
stevan Limbic_Region: there was some next and last tests in t/data_types/array.t
but I removed them last night because they were a little odd 14:02
I was thinking of doing some of that today
but you can if you like :)
Limbic_Region no - go for it
I will supplement if you miss the ones I am thinking of
stevan Limbic_Region: oh wait,.. sorry it was in t/statements/for.t 14:03
Limbic_Region: if you want to paste your thoughts, that might help me get started :)
Limbic_Region well - last shouldn't be tied to a specific control block
two thoughts
last if <condition>; 14:04
<condition> and last;
last <label>;
stevan (i figured once I got for.t done, i would do while.t, loop.t etc
Limbic_Region i.e. variations of last where it isn't the only statement on the line
and then last from a sub
stevan from a sub? 14:05
Limbic_Region in p5 it will let you do it but issue warnings - not sure what the p6 behavior should be
right - it is a mistake and probably shouldn't be supported
but WTF am I to make that call
stevan I think last, next, redo are only allowed in loops, but I will check the syns
if ever you are in doubt, read your bible (perl6::bible that is)
Limbic_Region ok - so I am off again, I will look at anything you come up with and supplement if needed
autrijus joins the bible thumping 14:06
stevan Praise @larry!!!
can I get a witness!!!!
autrijus Hosanna!!
hmm
BEGIN{} is only allowed as rhs?
$ perl -e 'BEGIN { $_ } = 3' 14:07
syntax error at -e line 1, near "} ="
Limbic_Region doubts his email is going to make it to p6.l without being subscribed as it is probably being held for approval or was filtered as spam (that happens a lot from his yahoo account)
stevan autrijus: thats just weird code IMHO
theorbtwo Limbic_Region: I talked to Ask about this once -- the first time you post from any given address, if it is not subscribed, it will be human-filtered, but then it goes on a domain-wide whitelist.
autrijus yes. 14:08
theorbtwo autrijus, what would the semantics of BEGIN as a LHS be?
autrijus theorbtwo: I don't know.
so I'm coding it as rhs only
we need BEGIN to properly support a number of things
say foo(); sub foo { 3 }
being one
although personally I don't use that often
Arathorn probably a silly question, but: has anyone thought about accessing the Apache API through pugs? 14:25
i.e. mod_pugs, i guess
jhorwitz arathorn: mod_parrot will handle it for you once the parrot compiler backend is complete 14:26
stevan there is also mod_haskell IIRC 14:27
Arathorn that makes sense, i guess
stevan do we have labeled blocks in perl6? I cant seem to find them in the Synopsis
Arathorn would be slightly surreal to have to compile your perl down to bytecode before it runs
jhorwitz arathorn: mod_parrot won't require you to do that 14:28
Arathorn it'll automatically compile up the bytecode on demand, a la a servlet container?
jhorwitz assuming there's a registered compiler for the language. i imagine there will not be one for pugs to begin with, but certainly for perl6. 14:29
Arathorn sexy, then :) 14:30
jhorwitz fyi, losser.st-lab.cs.uu.nl/mod_haskell -- looks like it's been collecting dust for a few years.
Arathorn browses view-cvs for mod_parrot 14:32
jhorwitz arathorn: make sure you're looking at the right one -- www.smashing.org/mod_parrot 14:33
ask's old version can sometimes pop up on google
Arathorn is flicking through svn.perl.org/viewcvs/parrot-modules...rot/trunk/ 14:34
which looks like your handiwork :)
jhorwitz ya :)
Arathorn (at least judging by the Author column)
have you thought much about how parrot would work with the threading fun & games for the more exotic Apache 2 models? 14:35
(apologies if this is more #parrot related)
jhorwitz parrot's model is one interpreter per thread, which is fairly straightforward to deal with. 14:37
so like mod_perl, we pick from a pool of available parrot interpreters 14:39
Arathorn nods
autrijus woot!
Arathorn would those parrot interpreters share any bytecode memory footprint?
autrijus jhorwitz: so, all syms has to be explicitly shared via pmcs
which is a good thing
bwahaha 14:40
I implemented BEGIN{} in no time
out-of-sequence sub{} coming right along
"BEGIN" -> do
env <- getState
return . Val . unsafePerformIO $ do
(`runReaderT` env) $ (`runContT` return) $ resetT $ do
evl <- asks envEval
evl (Syn "()" [Val code, Syn "invs" [], Syn "args" []])
autrijus praises unsafePerformIO
jhorwitz has a memory lapse and tracks down answers for autrijus 14:42
Arathorn reads up on how mod_perl2 works before trying to understand mod_parrot :) 14:43
ah, so only mutable data is duplicated between the parent & clone interpreters in mod_perl2 14:46
very cool
autrijus it's also very slow on win32 ;) 14:47
Arathorn because perl_clone() doesn't work properly?
i guess that screws up lazy-evalling tricks like the ones TT3 uses (iirc), too 14:48
autrijus stas has proposed a CLONE2 method
jhorwitz autrijus: yes, PMCs must be explicitly shared. can't find a definitive answer on bytecode. need to read more about interpreter cloning.
autrijus old pugs:
$ pugs -e 'say foo(); sub foo { 3 }'
No compatible subroutine found: &foo
App "&foo" [] []
as of 10 seconds ago:
$ ./pugs -e 'say foo(); sub foo { 3 }'
3
theorbtwo Woo! 14:49
autrijus turns out we don't need the costly refactor of Rule into Eval monad ;) 14:50
because you can freely enter that monad by saying something like 14:51
unsafePerformIO . runContT . runReaderT
or some other order
Arathorn hm, 15,632 unread mail in Lists.mod_perl - i've been away too long :\ 14:53
petdance Can I come in here? I don't know Haskell. 14:55
theorbtwo Certianly, petdance.
...and we can work on fixing that oversight. 14:56
jhorwitz petdance: join the club. ;-)
autrijus greetings petdance!
if you don't know haskell
you need to know unit testing!
I don't think we need to fix _that_ for you :) 14:57
petdance I'm REALLY interested in Parrot's internals.
the C code behind it.
autrijus oh. irc.perl.org has a #parrot
featuring Leo occasionally
who is more qualified than anyone here to talk about parrot internals :)
petdance I just wnana make sure the C code is happy and consted. 14:58
like I've been doing with the p5 guts.
jabbot pugs - 2360 - * BEGIN blocks now works!
petdance and, really, autrijus++ Bravo for all the JFDI you've managed to corral.
autrijus =) 14:59
consted? 15:00
q[acme] petdance: i haven't really been following, but is this so that the C compiler can pick up bugs?
Steve_p pets petdance 15:04
stevan Steve_p: did I see you were going to take on Test::Tutorial??
morning petdance :) 15:06
Steve_p stevan, yes, I be starting to revise it shortly. First pass is to get what's there working.
stevan Steve_p: you are a brave soul :)
autrijus $ pugscc --parrot -e 'BEGIN { say "Compiling!" }; say "Running!"' 15:07
*** Using the 'Parrot' backend.
Compiling!
*** Generated output: a.imc
$ ./a.imc
Running!
stevan weird, but very cool :)
autrijus :) 15:08
so, BEGIN{} is now freely usable
I'll implement "use" now.
stevan autrijus: maybe you know this, do we have labels in perl6? I cant find it in the synopsis?
autrijus stevan: no idea
stevan I will keep searching then, and if all else fails go to p6l 15:09
broquaint Do we know if use/require behave like their p5 counterparts and interpret magic in @INC?
autrijus k.
broquaint: I don't know.
broquaint I think it's to be defined in a future Apoclaypse ... 15:10
Yah, looks like it.
Steve_p stevan, I love the footnote "The first number doesn't really mean anything, but it has to be 1. It's the second number that's important." 15:11
jhorwitz wants subs for the parrot backend, but haskell IQ is too low. :(
stevan Steve_p: :) 15:13
Steve_p: all due respect to the Schwern, but that tutorial just confused me the first time I read it 15:14
Steve_p: IMHO it should just start with Test::More and leave historical Test.pm and Test::Simple as footnotes 15:15
hey boogie
gaal_ hey all
boogie hi stevan. :)
stevan hey gaal_
gaal_ stevan, hola. 15:16
stevan boogie: with all the pugs speedups in the past few days, your CGI will likely work much smoother
boogie stevan: yes, I'm checking it now. :)
autrijus gah
*Main> eval "my $x; BEGIN { say $x }"
this breaks
gaal_ smokes a pug
autrijus so I broke everything :-/
gaal_: it will be 100% fail 15:17
no need to
gaal_ puts out the smoke
autrijus rethinks the strategy
autrijus concludes there's no way around that bug except to do everything correctly
i.e. properly implement the pads for parser
boogie stevan: do you know something about why CGI/examples/test.p6 fails? it seems to me, that after sending the form, it's going to an endless loop 15:18
stevan: it's the same with the memory game, too.
jabbot pugs - 2361 - * separate lhs from rhs closure traits
broquaint Don't think like that, autrijus, there's a hack for *everything* ;)
stevan boogie: to be honest, I haven't looked at CGI in a little while
petdance q[acme]: Yes, so the C compiler knows "That pointer's contents are not modified"
boogie stevan: then I'm going to debug it. ;) 15:19
petdance For instance, if you have int strlen( char *str )
then the C compiler doesn't know that the contents of str don't get modified.
So char *p = NULL; strlen( p ); looks to C like you could be initiliazing it
OTOH, if it's int strlen( const char *p );
Steve_p stevan, I don't want to get too complex and skip Test::Simple. To be honest, people get confused with Test::More. Unless you are an alpha geek, I don't want to push them. 15:20
petdance then char *p; strlen( p ); is obviously a problem.
How do people get confused w/test::more?
stevan Steve_p: I wonder if you introduce it right, it might not be an issue
Steve_p For example, I explained to a guy yesterday how to install modules by hand. He's been programming with Perl for three+ years
stevan Steve_p: how has he been doing it? CPAN? 15:21
Steve_p Oh, I'll introduce along the lines of "See how all your ok()'s work fine with Test::Simple. OK, just change that to Test::More now :)"
...and then explain what more they can do with Test::More 15:22
stevan, only with CPAN.
stevan Steve_p: I wonder if that is not more confusing though? Because you have to do backflips with Test::Simple::ok to tests anything complex
stevan queues turns up "Dog and Pony Show" so petdance can hear too 15:23
Limbic_Region got impatient and subscribed to p6.l from his seldom used gmail account 15:25
petdance stevan: I have a swell live version of it from last year's ATP. 15:28
I'd like to get rid of the Test::More/Test::Simple distinction.
Steve_p So just start with Test::More 15:29
stevan thats my vote :)
autrijus ok. the fix is in 15:33
r2362
any smokers?
this has the effect of moving all declarations to compile time
$ ./pugs -e 'use Test; ok 1' 15:34
ok 1
1..1
it works now
if that is verified as working 15:35
please someone do a global s/require Test/use Test/
thanks!
$ ./pugs -e 'ok(1); require Test' 15:37
*** Error: No compatible subroutine found: &ok at -e at line 1, column 1
$ ./pugs -e 'ok(1); use Test'
ok 1
1..1
jabbot pugs - 2362 - * repair pad declarations... that makes 15:38
pugs - 2363 - * use() now happens at BEGIN time.
stevan autrijus: I will take care of the require Test -> use Test 15:39
autrijus: will use work in an eval? In other words can I implement a proper use_ok()?
autrijus yes, and yes 15:40
lol
$ perl -e 'eval "use Test"; ok(1)'
ok: plan before you test! at -e line 1 15:41
I stared at it for a few seconds
unable to make any sense
then I rememberd:
$ pugs -e 'eval "use Test"; ok(1)'
ok 1
1..1
stevan :)
autrijus it's scary how the availability of the "use" statement suddenly makes pugs much more perllike in my mind.
Juerd grin 15:42
Does it have "no" yet?
gaal_ preluding Test would speed up the smoke somewhat
r2363 smoke in progress 15:43
autrijus gaal_: actually, no, we need compilation
storing a Test.imc alongside Test.pm
gaal_ for test rteliability?
autrijus gaal_: no, "pre" compilation :)
gaal_ am i gaal_?
autrijus or even a Test.pbc
15:43 gaal_ is now known as gaal
gaal great, now there are two of me. 15:44
theorbtwo wonders if require should really import "is export" subs.
autrijus theorbtwo: currently "is export" is ignore 15:45
as we don't have namespaces yet ;)
boogie says: I've found a strange bug in Pugs...
autrijus i.e. it's merely future proofing
gaal heh :)
boogie it will run forever with the latest SVN version:
gaal autrijus, any thought on hackarounding runInteractiveCommand's usage of an opaque process handle?
boogie sub test2 ($param) { return $param; }
autrijus gaal: huh? 15:46
boogie sub test1 { my ($key); $key = test2($key); }
test1;
gaal i want open-pipe to give a pid
but runInteractiveCommand returns the tuple (stdin, stdout, stderr, prochande)
where the last element is not a pid :)
autrijus boogie: verified. take away the return() and you're fine
why do you want a pid 15:47
gaal p5 open| returns one
boogie autrijus: is it a bug?
autrijus boogie: yes
gaal: I say we return an opaque object.
called a Process or something
that supports .kill 15:48
gaal i'm not sure the haskell Process handle supports kill - unless i'm mistaken that's only available in System.Posix..Process
and runInteractiveCommand(/Process) is in System.Process
and there's no way to extract a pid - no way that i foudn in the docs at least 15:49
didn't dive into the soureces yet.
anyway, int he unix world it makes perfect sense to have a pid 15:50
even if it's not as encapsulated as a handle, that's what everything *is* eventually
autrijus hm you can terminateProcess
gaal and i can imagine some applications actually needing it 15:51
autrijus yeah.
gaal what abotu arbitrary signalProcess? you can't do that.
it's true that on win32 you want a process handle which isn't a pid...
autrijus yeah. 15:52
cross platformness is a pain :-/
gaal perhaps we should indeed return an opaque handle, and add deep ugly methods that meddle with the haskell internals on each platform.
....to return a pid when you want one
etc.
autrijus *nod*
at the worst case 15:53
you can write the neccessary C code by hand
to emulate platform specific behaviour
and inline them via FFI
that's how pugs swapped out its entire Char class
via Unicode.hs
gaal for the whole thing (eg replace runInteractiveCommand), or just the pid accessors? 15:54
autrijus the pid accessors
and before you know, your code will be in GHC core :)
gaal :)
autrijus (like Unicode.hs now is)
gaal pugs.exe: examples/fp/fp.p6: openFile: does not exist (No such file or directory)
autrijus fixed 15:55
gaal smoke up in a minute
autrijus hopefully not too red
autrijus braces for impact
gaal anyone have any luck compiling p5.8 on msys btw? it's really sad having 5.6.1 w/o cpan :( 15:56
forum2.org/gaal/pugs/smoke-msys.html 15:57
my network setup has begun sucking, so i can't actually view that myself :)
autrijus 10 unexpected successes!
gaal ah, a firefox restart helped. 15:58
autrijus must be doing something correct
help me untodo?
I'll investigate the red
jabbot pugs - 2364 - * fix example path
gaal what color is unex success? :)
nm, i'll peek in the yaml
autrijus yellow
gaal k, i'll do that, sed. 15:59
s/d/c/
funny, in undef.t, when using prove, the two yellow tests fail. 16:04
stevan gaal: did you make install? it might be using an old version?
autrijus yup
gaal i never made install :)
oh! but it is some funny path issue, because from a different shell it works as expected. 16:06
stevan a fresh 'make optmized' pugs makes me sooo happy :)
the require -> use change seems to be working fine, so I will be commiting it once this test run is done 16:08
then i /have/ to do some perl5 work :(
gaal t/syntax/lf_in_list.t in particular is happy :)
r2365 += 10 passing tests 16:13
integral pugscode.org <Overview Journal Logs> | smoke/win2k (occasional): xrl.us/fqum (4537/8, r2343), Mac OS X (62/4506, r2362), Linux (60/4482, 2267) | pugs.kwiki.org 16:14
Arathorn are thoughts on threading in pugs completely on hold under @larry pitches up with some stone tablets on the subject for parrot? 16:15
autrijus well we have async {}
Arathorn is trying to imagine how much data would get shared (if at all) between threaded parrot VMs in a mod_parrot + Apache2 Worker MPM situation
autrijus if you want a set of semantics
please write up a synopsis draft 16:16
check in under docs
gantrixx is there a problem with the ghc yum repository?
it seems to lock up on me when I try to install
Arathorn will go check out async {} then :)
thanks
autrijus ch.17
# svn.perl.org/perl6/doc/trunk/plans/...n_docs.pod
if you want to work on S17 :)
Arathorn nods.
autrijus Arathorn: we are using 5005 model now
that will change.
Arathorn oh, okay 16:17
jabbot pugs - 2365 - unTODO unexpectedly passing tests 16:18
autrijus lexical context is now restored! 16:21
we may finally have some semblance of context
r2366. resmoke?
gaal on it
autrijus danke
stevan r2367 - require Test -> use Test 16:23
autrijus: I just encountered a very odd bug 16:25
pugs -e 'my $x = 0; say "before $x"; for 1 .. 5 { next if $_ > 3; $x = $_; } say "after $x";' 16:26
dies with Error: cannot next() outside a loop
autrijus next() is utterly broken. 16:27
we don't have that yet.
neither redo().
both are TODO
stevan ok
well the odd things is it worked when I evaled it
(I am trying to get a command line test to work) 16:28
jabbot pugs - 2366 - * restore lexical context.
pugs - 2367 - changing all occurences of require Test
stevan perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
gaal autrijus, i want to return four values from a prim. it's an internals-use-only prim, so i'm okay doing it positional, at least for now. my question is just, how do i return a perl-boxed version of a haskell ProcessHandle? 16:29
sorry, you didn't need the whole introduction to that Q :)
pasteling Someone at 67.186.136.119 pasted "This fails: stevan% pugs -e 'm" (24 lines, 551B) at sial.org/pbot/9671
stevan that paste is mine :) 16:30
autrijus gaal: look at AST.hs 16:31
see VSocked
VSocket
xerox ve
autrijus and VThread
gaal ....of course, we can keep a global map inside pugs and onlty return a key :)
xerox Whoops, sorry.
autrijus then cargo cult
gaal most of my haskell is cargo cult ;)
autrijus stevan: error did not propagate up for. 16:32
I mean, `for`.
./pugs -e 'for 0..10 { 1/$_ }'
stevan strange :/ 16:33
autrijus no, it's just a bug :/
let me add a trapVal
stevan ok
gaal forum2.org/gaal/pugs/smoke-msys.html r2367 16:35
ooh, 1 more unexok! 16:36
autrijus and a lot more successes 16:37
stevan: oh, no that is not the prob 16:38
there is no bug her 16:39
here
stevan: next() was simply not invoked.
when $_ is <= 3.
gaal autrijus, why did you need to implement instance Ord VSocket? where are sockets ordered? 16:40
autrijus stevan: your sweeping 'use' change overwrote some of my fixes.
gaal: all Val must be ordered because they can be in an array
and we need to sort it.
adehohum Hi guys, is there an FAQ on how to submit new tests? I'm sure there's going to be something on the NNTP archive somewhere... 16:41
autrijus gaal: this req will go away when we move to opaque obj
adehohum: yes, read t/README :)
gaal autrijus, then how come VThread doesn't do that? a bug?
autrijus gaal: I think thread already derive ord 16:42
gaal ah
ok, i think i see.
adehohum OK, it doesn't say in the 6.2.1 readme, presumably the implication is that I should get the latest out of svn and read a more recent readme... 16:44
actally it says more or less "ask on #perl6" :)
autrijus yes :) 16:45
adehohum ok doke will do, thank you!
autrijus so, you begin by announcing what tests you are doing
then give me your mail addr
and I'll make you a committer
then you check in the test using svn or svk
that's all :)
adehohum I have had a go at subroutine parameter traits
so I've made t/subroutine/sub_parameter_traits.t (original huh) 16:46
and I'm [email@hidden.address]
stevan autrijus: so is the error propagating correctlly? 16:47
ah, I see , the error is in $!
ok I will re-think my tests after lunch :) 16:48
autrijus stevan: so be sure to svn up 16:49
I reverted your time travels
r2368
stevan time travels? 16:50
ahh, I see
autrijus stevan: your sweeping require->use change brought tests to several revisions ago
which would be a minor disaster if I don't have svk :)
but fortunately I do, so that's all fine
stevan thats odd, I svn uped right before I did it 16:51
autrijus weird. maybe you somehow touched the files in .svn
stevan oh, i see
autrijus adehohum: invitation is on its way to you
stevan I got r2365 then committed, which landed as r2367
autrijus welcome aboard!
no, that is not it 16:52
anyway, don't worry
stevan odd. ok, I will just rm -rf pugs and svn up to be sure
adehohum cool, thanks autrijus
gaal autrijus, heh, ProcessHandle really wants to be opaque: in the ghc implementation, it's ifdeffed as either a CPid or a Word32. in any case, it doesn't... uh, implement Show, so how do I get it to do Ord and even Eq? 16:54
...without hacking ghc itself of course 16:55
autrijus uh 16:56
type VProcess = ProcessHandle
instance Show VProcess where show _ = "{process}"
instance Ord VProcess where compare _ _ = EQ 16:57
gaal a hardcoded string?
autrijus how else?
gaal doesn't that make all PHs equal?
autrijus only for sorting purposes
gaal hm
autrijus or you can say
compare _ _ = LT
or something. improvise
gaal happily improvises. i hope sorting algos terminate though inlight of things that never sort :) 16:58
jabbot pugs - 2368 - * revert Stevan's time travel.
autrijus sure they do :) 16:59
(pugs uses mergesorting)
yo 17:00
Corion autrijus!
gaal (wasn't there a segfault in perl once when user-defined comparators didn't satisfy some basic invariant?)
Corion backloggeth
autrijus Corion: many exciting news!
use, BEGIN, last if 1;
Corion Yay. BEGIN is there!
autrijus gaal: that was when it's qsort
Corion BTW, there was a short idea of renaming LWP(::Simple) to something like Network:: or whatever. I'm bad at naming and don't think it's such a good idea, but others might have good ideas 17:02
gaal there's sure to be something better than LWP.
Corion starts a smoketest
gaal what's bad about Network, anyway?
Corion gaal: I'm not convinced that Network:: is such a good name, especially for file:// URLs :)
autrijus file:// is also on the network. 17:03
I think Net:: is fine too, really
Network:: looks... haskellish
Corion But after I've read URI::URL, I wonder if Pugs shouldn't use file:// instead of File::Spec anyway... The smoke matrix generator still messes up links to synopses somewhere
autrijus Network:: System:: Control:: Data::
Corion I find that having Net:: and Network:: as two competing namespaces would be bad 17:04
autrijus nod.
Corion ... and Network:: just for LWP-stuff is also not good IMO
... because there will be other network stuff that does not fit well with LWP
gaal quick syntax Q: when i say data ... deriving ( ..), it's to *limit* what i derive, right? 17:05
metaperl_ Limbic_Region, I just saw your pm post of powersets... good job
wilx Hmm, iirc if you don't say that you don't derive anything.
So it imho it is to enumerate what you derive. 17:06
autrijus gaal: no. 17:07
gaal: there are some derivable classes.
if you say deriving(), you automagically gain those instances.
but you can add more instances by using the `instance` directirve
you also need to add `instance Show Foo` by yourself if you want to customize how Foo is shown 17:08
`deriving (Show)` means "somehow generate a Show instance for me"
jabbot pugs - 2369 - * add a line saying that smoke.html is s
Corion Aaah. That reminds me - I have to add another test for 1 % $x, where $x is not a VRat, but a VProxy pointing to a VRat. How do I create a VProxy in Pugs?
Arathorn ajs's mail on p6l in the 'thunking semantics of :=' thread is rather illuminating about p6 threading assumptions 17:09
i guess ithreads are here to stay - but much lighter in parrot (at any rate)
PerlJam anything but pthreads 17:11
wilx What's wrong with POSIX threads? :) 17:14
autrijus Corion: my $x := rat
Limbic_Region thanks metaperl_ - it is all stevan's fault 17:15
metaperl_ one question: is "Ref" mean coderef?
you sub returns Ref
Corion metaperl_: It returns a reference then, obviously 17:16
metaperl_ you know multi subs might've been cleaner than a hash indexed by numbers
Corion "Code" would be a reference to code. "Ref" would be a reference to a reference.
... at least that's what Perl5 does.
r2369 - datenzoo.de/pugs/win2k.html 17:19
... some new failures, something seems to have broken compilation of some examples.
Hah. My test code exhibits the bug, just as I suspected :( Where should I put number handling for VProxy objects ? Is there any central point that already handles this? Like op2Num ? 17:21
Limbic_Region metaperl_ - I thought about using multi methods, but the point was to show how easy it was to transition p5 to p6
Limbic_Region is currently only half paying attention btw
the returns <type> isn't even necessary btw - just showing off a bit 17:22
gaal argh, VProcess wants to do Typeable, but how do i get it to do that?
Limbic_Region wanders off to get lunch 17:24
autrijus gaal: just deriving Typeable
gaal but it's a type, not a data .. er.. constructor 17:25
autrijus you can only derive classes for types.
in haskell, types belong to classes
not data
gaal should i do what's done for VRule? 17:26
autrijus yeah.
gaal k
autrijus well, you can also do
newtyp VProcess = MkProcess ProcessHandle
newtype VProcess = MkProcess ProcessHandle
deriving (Show, Typeable)
or just derive typeable 17:27
gaal how do i then make it derive Typeable?
ah ok
autrijus I think it gets done automagically.
jabbot pugs - 2370 - * add the "Pad" type to carry lexical pa 17:28
pugs - 2371 - * repair parrot
pugs - 2372 - * to get eval to work, use our() not my(
17:29 metaperl__ is now known as metaperl_
autrijus Corion: oh, just to say: async.t worksforme 17:33
Corion: so I made the todo conditional to platform
Corion autrijus: Ah - I don't know if it worksforme now, but we'll see. I think async.t worksforme too, but async-sleep.t doesn't, which is no surprise. 17:34
(smoke currently running) 17:35
jabbot pugs - 2373 - * repair die.t by giving out sensible $! 17:38
pugs - 2374 - * async.t worksforme, so assume it's a w
Corion ah, no - async.t "correctly" fails for me on Win32, as Haskell/GHC does seem to differentiate between userspace and OS threads there. 17:46
r2373 - datenzoo.de/pugs/win2k.html
autrijus Corion: I wonder if you change forkOS to forkIO 17:53
whether it would work
Corion goes looking
The code already does: (if rtsSupportsBoundThreads then forkOS else forkIO) -- so that's why it does work for you and doesn't for me ;) 17:54
autrijus right, so try forkIO for all 17:55
Corion autrijus: Just trying that ;)
Hmmm. Still failing
autrijus keep it that way then
may be a win32 deficiency
does system+ithreads on win32 work?
in p5 17:56
I thought it blocks as well
Corion autrijus: I never tried/looked. Win32 has real threads, so iThreads should/could work. But who knows ...
Corion reverts to rtsSupportsBoundThreads
autrijus I don't think it'd work... you can try with fork() 17:57
they are the same thing
so on win32, try fork, system() from one, and see if it blocks parent
jabbot pugs - 2375 - * fix a misuse of $in 17:58
gaal okay, i did some copycatting, but now saying "VProcess phand" to try and convery a ProcessHandle to a VProcess doesn't work: 18:00
Couldn't match `VProcess' against `ProcessHandle'
Expected type: VProcess
Inferred type: ProcessHandle
autrijus gaal: VProcess is a newtype? 18:01
gaal how to i actually implement the cast?
yes
autrijus you use MkProcess
VProcess (MkProcess phand)
gaal Is that a convention? by analogy, i'm looking for the definition of MkThunk and not finding it. 18:02
unless it's instance Thunk.Class VThunk where force (MkThunk c) = c
autrijus src/Pugs/AST.hs:newtype VThunk = MkThunk (Eval Val) 18:03
here MkThunk constructor has typ 18:04
MkThunk :: Eval Val -> VThunk
oh btw. 18:08
if someone is looking for small Parsec task
implementing #line would be fun
jabbot pugs - 2376 - * make progressive_powerset use some new
autrijus just parse for #line at Statement level
and use setPosition. that's all
pasteling "gaal" at 192.115.25.249 pasted "wtf suddenly started happening? right after make clean" (6 lines, 322B) at sial.org/pbot/9672 18:09
autrijus gaal: no idea. (!) 18:10
try a clean build?
gaal i did!
will clean-mightily the tree.
oh: i see. 'make' w/o optimized is broken again. 18:12
autrijus you can't mix optimized with unoptimized. 18:13
but. journal up.
I'll sleep now. see ya!
gaal no, i just did 'make' w/o anything.
night.
thanks for the help!
autrijus & 18:14
gaal++
theorbtwo G'night, autrijus.
gaal src/Pugs/AST.hs:1:0: 18:17
Data constructor `Pugs.AST.Pad' is defined in the hs-boot file, but not in the module
am i the only one gettign this? 18:18
i'm hacking on AST but i don't think my changes relate to this.
ah, sorry, actually they do
cancel that
:)
nothingmuch anyone with windows around? 18:24
gaal me
nothingmuch could you reload that page, see that the PNG of the logo isn't fubar?
gaal it's not the same color as the rest of the banner, if that's what you meant
nothingmuch lighter? darker? white? 18:25
gaal you might wanna alpha-channel its background to avoid caring about that
nothingmuch i did, but IE displays it white
gaal it's lighter than the wine-red.
ah, right, i forgot, ie sucks.
castaway yup
oh, too slow
castaway gives nm a linux-ie 18:26
gaal do the site in flash :-p
what's a linux-ie?
a linux that drinks stout? :)
nothingmuch fsck
gaal: or SVG (That's what the logo is in)
opera
why can't they properly support pngs?
i think i'll go for the javascript/png alpha hacks
castaway crossover office and IE
gaal ahhh 18:27
nothingmuch okay, back to alpha
looking good with khtml + ff 18:28
gaal no, have your page-generating script imagemagick the bg to the same color as the bg.
nothingmuch gaal: i did that, but then in one browser (i forget which) it's too dark
gaal yes, looking good now for me too (ff/win)
nothingmuch so then i came back to you, and you said 'too light'
so i checked with the other, and indeed it was
gaal urr? then don't pngcrush the image
castaway and opera ?
nothingmuch maybe someone is doing color "correction"
opera is for weenies
;-)
could you guys check the png alpha stuff with opera/msie? 18:29
gaal you *could*, of course, make the whole banner an image :)
castaway thwaps nm. ;)
nothingmuch eek
castaway url ?
nothingmuch i want alpha
gaal white on msie.
nothingmuch nothingmuch.woobling.org/kelaa/demo...re.html.he
white... peh
gaal (View This Page in MSIE)++
nothingmuch okay, i'll copy a fix that tells msie to load it with the alpha blending image loader 18:30
gaal i have the weirdest bug in ff now, though.
opening a new tab, the focus gets left behind in the last tab
eg in an edit box
instead of popping up to the location bar.
also, quicksearch broke. 18:31
gaal hates computers
castaway address unavailable
nothingmuch oi
gaal: could you reload with msie? 18:33
castaway: what does that mean?
castaway no route to host, generally
gaal i see no image at all now :)
nothingmuch huraah! problem solved
castaway *g*
gaal what, you just punt on the image for msie? that effectively means nobody will see it, you know 18:34
castaway ah, got it.. what am I looking for? 18:35
nothingmuch ok, how about now?
castaway: the logo on the top left
is it blended well into the red?
gaal ff good, msie white 18:36
gaal looks for food. bbiab
castaway Im gonig to say yes, not that I know what that means : the background of it is all the same red as the top stripe
nothingmuch damnit
what msie?
castaway: yes, that is good 18:37
is the layout ugly somewhere?
castaway nope, looks lovely
(Opera 8.0)
nothingmuch likes it when browsers behave
castaway too
nothingmuch gaal: homepage.ntlworld.com/bobosola/pngtest.htm 18:40
gaal 6.0smth 18:41
nothingmuch does the solution fix the problem on that page?
gaal ah, it's js 18:43
blocking that in msie
./pugs.exe -e 'my @r=Pugs::Internals::runInteractiveCommand("ls"); @r[1].readline.say' # works 19:03
./pugs.exe -e 'my @r=Pugs::Internals::runInteractiveCommand("cat"); say @r[0]: "moose"; @r[0].close; @r[1].readline.print' # also works 19:04
cognominal print my $a; # does not work. I would expect 'my' to work like a function as it does in Perl5 19:22
gaal cognominal: there's a comment in AST i think about how my should not be statement level :) 19:23
cognominal ho, I remember now. I already have raised the question.
sorry 19:24
cool, "print %ENV" works now
gaal btw better call it %*ENV usually 19:26
nothingmuch gaal: did enabling js fix it?
gaal though %ENV ought to work too.
nm, dunno, i didn't want to get sidetracked - it was disabled for a reason :)
maybe there's someone else on windows online now?
cognominal only a obfuscator would define a package based %ENV... 19:27
in fact I would like a pragma to forbid that.
gaal gee, i wonder if there are any camelfolks who are also obfuscators :)
nothingmuch anybody with IE+JS want to be a guinea pig?
gaal "folks"? i can't type :)
Jonathan_ Obfuscation is fun. :) 19:30
cognominal Jonathan_: I know that, I maintain with BooK paris.mongueurs.net/aplusplus.html 19:31
I accept Perl6 submissions...
gaal asavige already has something amazing 19:32
did you see it? it's somewhere in examples/
cognominal madgolfer.p6?
gaal yeah
it's not an $A++ but it's still insane :) 19:33
cognominal :)
Andrew Savige is the auther of this $A++ : $A-=$----$----$----$----$----!$-; 19:34
Jonathan_ Well, maybe I'll have to have a go at some..*after* the exams.
BTW, my daily Pugs Win32 builds have been running smoothly for a few days now along with daily WinXP smoke testing results being put up. 19:37
www.jwcs.net/~jonathan/perl6/
gaal cool
Jonathan_ Not sure if there's a list of smokes anywhere that it should go on or anything. 19:38
gaal see the /topic :) 19:39
also, feel welcome to make sucha a list in the wiki
actually, there *is* a list, but it's prolly out of date.
feel free to update it then :)
Jonathan_ OK. 19:40
jhorwitz nothingmouch: still need that guinea pig? 19:41
gaal anyone here run make test on a machine with HT?
nothingmuch xrl.us/fv4x <-- add this too
gaal pugs doesn't go over 50% but i don't know if that means anything.
nothingmuch jhorwitz: yah
gaal dislikes shortened URLs 19:42
nothingmuch nothingmuch.woobling.org/kelaa/demo...re.html.he
is the PNG displayed properly when the js is fixed
Jonathan_: if you want to feed my ego place them in chronological order ;-)
Jonathan_ Am I missing something, or is the Pugs wiki not linked to from pugscode.org? 19:43
jhorwitz nothingmuch: white background 19:44
nothingmuch damnit
nothingmuch curses microsoft for existing
ok, one more trial
gaal hard to curse something for not existing
nothingmuch ...
reload 19:45
gaal nm: is there any use for keeping a timestamp on every test in the tests.yml? just notices all this info 19:47
makes it hard to diff
nothingmuch gaal: kungfuftr asked for that
i can take it out, make it optional, whatever
jhorwitz: any change? 19:48
jhorwitz nothingmuch: bingo 19:49
nothingmuch utters "finally" 19:51
Limbic_Region looks at lukes response to the while blocks and formal parameters question and tries really hard to understand but fails to do so 19:53
gaal just got the sleepies, so i ci'ed what i have 19:54
if anyone wants to write tests for p5-like pipe open, or also open with explicit mode, please do so 19:55
the implementation of both will be in perl6 on top of the new prims of r2377
nothingmuch goes to write more money making projects =(
sowwy
gaal also if anyone wants to write an open3 wrapper... :)
k, i'm off to bed. night all! 19:56
nothingmuch .... or better yet: port IPC::Run, and give it good pty support
ciao!
and write Expect, implemented with IPC::Run 19:57
gaal nm, tell me more, i''ll se about implementinf that
oh
maybe not :)
later. zzz&
nothingmuch so that no one ever ever gets it wrong later
heh =)
Jonathan_ Added my tinder to the Wiki...any objections to me adding a link to my Win32 Pugs build on the PugsDownload page, provided I maintain it properly this time? :)
nothingmuch i think you can do it
ciao!
Jonathan_ bye gall
nothingmuch Jonathan_: yah, it's a wiki 19:58
do as you please =)
the more content the merrier, as long as it's not too much per page
jabbot pugs - 2377 - runInteractiveCommand and openFile primi
Jonathan_ Cool, it's in. 20:04
mj today test-diff wiki.kn.vutbr.cz/mj/index.cgi?diff_...vision=1.8 20:10
nothingmuch mj++; # pretty 20:11
want to implement it a Test::TAP::Model visualizer?
Test::TAP::HTMLDelta?
mj diff plugin is old Kwiki best feature 20:14
no free time for Pugs this week, :-(
Wikipedia diff is the best, IMO. 20:15
ninereasons since somewhere around r2361, the shell version of pugs has not been working. 20:17
sub hello ($x) { return "hello $x"; }
say hello 'world'
*** Error: No compatible subroutine found: &hello
the same thing at the commandline works fine 20:18
(or in a script, etc.) only broken in the shell.
nothingmuch probably related to autrijus's work today 20:19
can you try to test it with gaal's patch?
open pipe to pugs
and then play with it's shell?
ninereasons nothingmuch, what/where is gaal's patch? 20:20
nothingmuch see backlog
i don't know the details
ninereasons ok, thanks.
nothingmuch but he asked for tests
nothingmuch can't really look into it now =( 20:21
ninereasons that's okay, I'll take do the work :-) 20:22
Corion Grrr. People renaming files should check if they break some tests by it! 20:25
nothingmuch hola Corion 20:26
Corion Hi nothingmuch 20:27
cognominal rafb.net/paste/results/QihgyN66.html # this is weird; a two dimensional array seems to be garbaged on return 20:29
I can probably simplify it more 20:30
mj test.wikidev.net/Pugs_tests_result_...;oldid=766 20:32
cognominal also what is the routine used to print in the read eval loop. It is better than a straight print 20:33
pugs> my @b = [ < 1 2 3 4 > ], [ 5 ];
(('1', '2', '3', '4'), (5))
pugs> print @b
12345bool::true
theorbtw1 print @b.perl 20:34
cognominal thx 20:35
poblem is that (('1', '2', '3', '4'), (5)) evaluates in a flat array... 20:37
bug!
jabbot pugs - 2378 - fp/ was renamed to functional/ 20:38
pugs - 2379 - VProxy variables can cause a Haskell err
20:40 theorbtw1 is now known as theorbtwo
Corion Is there any Sxx or Axx or Exx about $?CALLER::POSITION? 20:43
... I'm especially interested in the line/column position, as it seems to be one item off. 20:44
nothingmuch S06 i think
but not about POSITION
it's about CALLER::
$?POSITION is, afaict a pugs ext
Corion Ah...
Anyway - some more failing tests committed, including one against the interaction between #line and $?CALLER::POSITION 20:45
... another smoke run whilst I'm away :)
jabbot pugs - 2380 - Added tests for $?CALLER::POSITION again 20:48
mj g'night, test.wikidev.net/Pugs_tests?action=history 20:55
Corion ... and somebody, again, broke the automatic retrieval of the svn version into the Pugs build. 21:00
mugwump witchhunt time! 21:02
hey ingy_
was it you?
ingy_ nosir
mugwump ingy, I've got some more perldoc stuff, but I can't commit any more, I think because I never had an svn.kwiki.org account 21:13
ingy mugwump: msg me a passwd entry 21:21
I'll give you commit access for Perldoc 21:22
QMario Can someone tell me how I can get a value out of a hash? 21:24
How do I use <STDIN> to get a value out of a certain hash?
ingy QMario: you can't. hashes are write only in Perl6 21:25
just kidding ;)
QMario What do you mean? 21:26
What I want to do is to create a program that stores a "phone book" in a hash. Then I want to ask th person who is looking through the phone book, who they want using <STDIN>. How do I do that? 21:27
Can any of you ask this question in #perl for me?
mauke hahaha
why?
QMario Heh, I'm banned. 21:28
mauke why?
QMario For standing up for Christ. :-D
mauke well, that's your problem 21:29
sounds like homework anyway
QMario For me?
nothingmuch my cat is crazier than autrijus 21:30
he likes halva
and ice cream (but not frozen yoghurt)
obra 21:32
This channel really has nothing to do with perl5, qmario 21:33
nothingmuch QMario: i think you should learn to separate between perl 5, perl 6, and religeon
and for the mean while, till your ban is lifted, either use #perl on irc.perl.org, or something like perlmonks.org (website), or [email@hidden.address] (mailing list) 21:34
sorry, wrong mailing list address
lists.perl.org/showlist.cgi?name=beginners 21:35
you could also get one of Randal Schwartz's books, for perl beginers 21:36
or Simon Cozens' one, which is available online
"Begining Perl" or something like that
are you listening? 21:37
mauke Beginning Perl: learn.perl.org/library/beginning_perl/
Corion #perl bans people according to the rules of irc: 21:43
1) Somebody is drunk
2) Somebody took the wrong drugs 21:44
nothingmuch does 1) apply to the op or the banned person?
Corion nothingmuch: Any person. Need not be on irc.
cognominal blue cubes from the fridge are ok, I suppose
nothingmuch bans corion because someone in ireland *must* be drunk ATM
Corion nothingmuch: You're free to try on #perl6 :) 21:45
nothingmuch =)
i like the fact that anarchy seems to actually work for this project
in all it's aspects
Corion Even NathanYJ left us :) 21:48
nothingmuch yeah
Corion (and I've mostly shut up about my more extreme viewpoints too :) )
(... but I'm still waiting for my chance to push URI::File as the way to handle filenames in Pugs/Perl6)
nothingmuch i think we should have a grand unified resource manager 21:49
URI
File::Spec
IO::AtomicFile
that knows to be:
Corion nothingmuch: Stop that J2EE / P5EE talk :)
nothingmuch it's not that it's all of them at the same time
it's just a big hub of convenience that knows to connect them all for you
mauke like IO::All?
nothingmuch sort of 21:50
but less drunk
mugwump heh
Corion The IO::All magic is too powerful by default. 21:51
nothingmuch my grudges with IO::All is that it's a bit too dwimmy
and it is not 100% flexible
or at least doesn't seem to be
actually, you know what mauke, reading more carefully (and not just seeing examples) i think IO::All is saner than I initially thought 21:54
Corion nothingmuch: The File/Directory abstraction as a lazy tree is nice. The implicit spawning of a (http) server is incredibly dangerous 21:56
nothingmuch true
,
mugwump no http server, just a socket server 21:59
That one-line http server in the docs isn't exactly standards compliant ;)
nothingmuch i'd like an IO::All::Safe thingy
Corion mugwump: Still bad enough :) 22:00
nothingmuch that can only read things
mugwump IO::Few
nothingmuch would like a way to just open $fh, $user_input; without worrying ever
(if read permissions aren't a problem"
without a file like "foo|" being a problem
and with foo.org/blah working
and so on and so forth 22:01
nothingmuch looks
E_NO_SUCHMODULE IO::Few
mugwump: what was it we talked about a while ago? 22:02
i remember having something to tell you, but i can't recall the context
ingy nothingmuch: I'm working on a strict mode for IO::All 22:16
nothingmuch ingy++
ingy use IO::All -strict; 22:17
it simply exports a constructor that creates objects that have the strict attribute set
and then all operations check that attribute for whether to be strict. 22:18
I will likely have a way to force all IO::All objects to be strict
but module authors should not set that 22:19
so the strictness is sort of lexically scoped
of course operations that gen new IO::All objects will inherit the strictness bit 22:20
so it's not really lexical, but it should give you enough rope to do what you need 22:21
Dave Rolsky (autarch) gave me that idea. It's a good approach I think 22:22
Limbic_Region stevan ping 22:37
QMario Sorry for not responding in a long time.
Limbic_Region question - if you were porting a p5 piece of code to p6 that required regex support (that could easily be done with junctions instead) - would you show off the power of junctions or use p5 regexen? 22:43
keeping in mind it is purely for others to be exposed to all the great work of Pugs
nothingmuch junctions =) 22:48
ihb If i have a Perl 5 class, can i use that as a base class for a Perl 6 class?
nothingmuch ihb: my understanding is that yes, unless you want to have opaque type goodness
p6 will still support blessing
mugwump There's no real reason why it can't be possible for an object to be both a blessed hash and have opaque properties... 23:21
nothingmuch good point, actually 23:22
but it's likely to cause some confusion
mugwump: backlog up a bit 23:23
mugwump I'm not sure what we were talking about, nothingmuch. Maybe someone's logging this channel? :) 23:24
nothingmuch p'raps
i mean, yes 23:25
p'raps i can find it
mugwump maybe you found some cheap copies of Infected Mushroom CDs? :) 23:26
nothingmuch nope, sorry
mugwump blast.
nothingmuch haven't been in a cd store for ages
damnit, i can't remember what I wanted to say 23:27
but i remember i worked hard trying to say it
oh! 23:28
Set::Object has a weird bug
i'm not exactly sure how it surfaces
but when you '-x _' after another test, some Set::Object sub is invoked 23:29
and says that blah blah blah is not a Set::Object
try to run S::O and IPC::Run in the same script 23:30
Limbic_Region ok - I need some junction help 23:36
if I have any( @foo ) eq any( @bar ) to start from and the answer is true, how can I find out which item matched?
nothingmuch Limbic_Region: you can't
afaik
Limbic_Region not even with another junction? 23:37
nothingmuch in a boolean at least
Limbic_Region forget the test
that was to start from
nothingmuch i would like to say ($j = all(@foo) eq all(@bar)); but i'm not sure that works
from there you can call junction methods on $j
i forget their names
lets read some tests in t/junctions
Limbic_Region yeah