svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com
Set by avar on 16 November 2006.
00:27 amnesiac joined 00:52 mako132_ joined 00:57 nipotaway is now known as nipotan 00:58 amnesiac joined 01:07 amnesiac joined 01:20 kisu joined 01:38 Khisanth joined 01:40 nusgnaf joined 01:46 kanru joined 02:03 putter joined
putter We have token, rule, and regex. And they are all... regexes?? 02:06
lambdabot putter: You have 4 new messages. '/msg lambdabot @messages' to read them.
allbery_b token and rule let you sensibly and readably compose complex regexes from smaller parts. 02:08
this is not a bad thing IMO
tene putter: they're just different default behavior.
allbery_b "just". but the different defaults help make things more comprehensible 02:10
svnbot6 r15163 | putter++ | yet_another_rules_engine renamed yet_another_regex_engine. Because rules don't backtrack, and it knows how to. 02:16
putter The problem lies in the same word being used for both a category, and a member of that category. So you have "regex regexs", and "non-regex regexs". Which seems unfortunate. And worth improving somehow. 02:17
allbery_b I'd actually say regexes, regex components, and regex collections (regex, token, rule) 02:19
maybe collections is the wrong word there 02:20
packages?
kinda overloaded
putter :)
allbery_b anyway tokens and rules a re conveniently packaged fragments of regexes 02:21
the names suggesting their default behaviors ad therefore how they fit together when used in regexes or other fragments 02:22
02:23 weinig|away is now known as weinig
putter perl question - what is the right way to refer to Inf? 02:37
Data::Dumper dumps it as bareword inf . 02:39
tene ?eval [+] 1..Inf
02:39 evalbot_r15162 is now known as evalbot_r15163
evalbot_r15163 pugs: out of memory (requested 1048576 bytes) 02:39
putter (err, perl _5_;) 02:40
allbery_b not sure you can in p5
putter okay. just wanted to make sure I wasn't clueless before I kludged in a sub inf () { 1000**1000**1000 }. blech. 02:41
tene ?eval 1000**1000**1000 02:42
evalbot_r15163 Inf
02:43 zgold joined
luqui putter, 1e999 works 02:44
that's what I usually use
02:45 dmq joined
luqui except it bitches a warning, n 02:45
m
tene What warning does it emit? 02:49
allbery_b hm, I get no warning 02:50
(5.8.8, with -w)
02:53 zgold left
putter thanks 03:00
03:08 davidfetter left 03:12 REPLeffect_ joined 03:24 cls_bsd joined, justatheory joined, bucky joined
putter good night & 03:36
svnbot6 r15164 | putter++ | misc/pX/Common/yet_another_regex_engine - minor progress. p5 re_tests 80% okay. Performance problems. See README. Help welcome.
04:01 justatheory joined 04:03 nusgnaf left 04:07 kanru joined 04:28 weinig is now known as weinig|zZz 04:30 mako132_ joined
dduncan regarding 1000**1000**1000 , that should not be Inf, but Overflow or some such 04:56
as it is known to be finite
05:11 nipra joined 06:13 BooK joined 06:31 Khisanth joined 06:36 mr_ank_ joined, rfordinal joined 06:44 rfordinal joined 06:58 iblechbot joined 07:04 REPLeffect_ joined 07:06 leed joined 07:09 marmic joined
baest dduncan: shouldn't it continue to output numbers in that case? Don't what in the specs concerning this, but Inf is certainly wrong 07:51
dduncan true ... 08:01
Perl 6 has big integer support, so it should try to do the whole actual number until it runs out of resources ... unless some optional feature is used to explicitly limit resources, which would eventually make it stop gracefully 08:02
eg, someone could set an environment variable that says don't try to work with integers that take more than 10MB of memory to represent 08:04
then if that limit is reached, the error would fail with an Overflow exception or some such,
s/error would fail/operation would fail/
that said, it may be simpler for implementers to not bother with such limiters initially, and program lazily such that the program just tries using resources open-ended until it reaches some hard limit, and the programmers just have their own sanity checks to avoid asking for something unreasonable 08:06
the hard limit being the hardware of the machine
that is, the environmental variable I mentioned could be a feature added later on to Perl, that doesn't need to be in the first production release 08:08
my earlier point is that returning Inf is a bad response if we know that the result is finite
eg, Inf is good for div by zero, but not for multiply of large finite numbers 08:09
08:10 xern joined 08:14 devogon joined
tene ?eval 1/0 08:22
08:22 evalbot_r15163 is now known as evalbot_r15164
evalbot_r15164 Error: Illegal division by zero 08:22
tene Inf is much worse for div by zero than for 1000**1000**1000
You have a good point, but your example of a good use of Inf was... bad. 08:23
baest dduncan: i agree 08:40
dduncan tene, 1/0 is Inf ... zero goes into a non-zero finite number an infinite number of times 08:44
as to whether 1/0 raises an exception or returns Inf, I would expect that to be configurable by the user
baest except maybe for divide by zero. That should probably return undef or null
dduncan oh god no
returning undef or null is the worst thing you can do 08:45
it should either raise an exception or return Inf
baest or exeption. But as I read divide by zero isn't Inf for several reasons
luqui dduncan, what about negative inf?
dduncan so what mathematical operations do return Inf?
luqui if 1/0 = inf, then inf = 1/0 = 1/(-0) = -1/0 = -inf 08:46
dduncan if not div by zero
baest SUM(all naturals numbers)
08:46 nperez joined
luqui [+] 1..*; :-) 08:46
dduncan luqui, as per your question ...
luqui it will return inf, if you wait for it to finish
dduncan a negative num div by zero = -Inf, positive / 0 = +Inf
I would assume
luqui dduncan, but I just derived that the two are the same 08:47
(that is the grounds on which I agree with baest)
(the idea that 1/0 is inf, but not -inf, is preposterous)
dduncan well sure, raise an exception then
just returning undef/null is bad
returning fail/exception should be done
luqui yeah, that's not what undef is for 08:48
on the other hand, POSIX thinks 1/0 is inf and -1/0 is -inf
so there's something to be said for that
(even if it's wrong, it's "predictable" in some sense)
tene Exception is the best solution. Period.
dduncan afaik, Perl's nearest native concept to a SQL null is Undef, and its nearest equivalent to the null set is the empty set 08:49
luqui exclamation point!
tene Question mark?
Comma,
dduncan I would argue, exception by default, but user can configure to have it return Inf or something with a module or pragma
luqui perl code $#$%
tene hehe :D
luqui I guess 08:50
configurability is...
overrated imo
it makes it harder to implement a fast runtime
and it makes it harder to get used to new environments (but that's why you put the pragma at the top)
dduncan but some users expect an Inf result ... the IEEE float has it built-in as a value for a reason
luqui then if $denom == 0 { return Inf } 08:51
tene I really doubt there's much value in configuring the response to div-by-zero
If you want to do something special with div-by-zero then check for zero yourself, or catch the exception
dduncan: They really *shouldn't* be expecting that result, because it's wrong. 08:52
dduncan or perhaps an unboxed num math will return unboxed num value Inf, while boxed Num math will throw an exception
regardless, I agree that an exception should always be the default, if it is even configurable
08:56 drrho joined 08:59 nipra joined 09:04 explorer joined 09:19 Aankhen`` joined 09:21 andara joined 09:29 ruoso joined 09:34 DebolazX joined 09:38 kolibrie joined, stef_ joined, cognominal joined 09:39 explorer joined, nipotan joined, masak joined, fridim joined, revdiablo joined, spo0nman joined, dduncan joined 09:40 elmex joined 09:42 takanori joined 09:43 knewt joined, cookys joined 09:47 buetow joined, pbuetow joined 09:50 mr_ank_ is now known as mr_ank
Juerd Dutch Perl Workshop, Friday March 16: www.perlworkshop.nl/ (CFP real soon now) 10:28
lambdabot Title: Nederlandse Perl Workshop 2007 - Nederlandse PerlWorkshop
11:02 chris2 joined 11:08 kanru joined 11:12 Aankh|Clone joined 11:14 nipotan is now known as nipotaway 12:11 dduncan left
cognominal manque de pratique en perl 5 12:14
quelle est la syntaxe la plus elegante pour une tranche de reference de hash?
oops
12:15 andara left 12:23 TimToady joined 12:38 weinig joined 12:41 shay|army joined
cognominal what is the Perl 6 equivalent of @{$hashref}{ qw( key1 key2 ) } ? 12:44
12:45 Psyche^ joined, Psyche^ is now known as Patterner
wolverian $hashref<key1 key2> 12:45
I suppose it should be called $hashcap :) 12:46
cognominal thx 12:47
wolverian I wish purl was here to be sarcastic on you
:)
xinming_ ?eval my $h = (a => 1, b => 2); $h<a b>; 12:53
evalbot_r15164 Error: Cannot cast into Hash: VRef <Array:0xb7a9b378>
xinming_ ?eval my %h = (a => "hello", b => "world"); %h<a b>;
evalbot_r15164 ["hello", "world"]
xinming_ ?eval my %h = (a => "hello", b => "world"); my $href = %h; $href<a b>; 12:54
wolverian ?eval my $h = { a => 1, b => 2 }; $h<a b>
evalbot_r15164 ["hello", "world"]
xinming_ ?eval my %h = (a => "hello", b => "world"); my $href = %h; $href<a b>;
wolverian pokes evalbot_r15164
evalbot_r15164 [1, 2]
wolverian here we go.
evalbot_r15164 ["hello", "world"]
xinming_ hmm,
xinming_ forgot the { } >_< 12:55
12:55 b00t joined 13:00 REPLeffect_ joined 13:15 Azure-BOT joined, Limbic_Region joined 13:17 explorer joined
Limbic_Region any sun/solaris weenies about - need to know how to reset a prom passwd - apparently pulling the eprom and watch battery don't cut it 13:18
13:51 cjfields joined 14:01 vel joined 14:06 hoowa joined
hoowa audreyt ? 14:06
wolverian @seen audreyt
lambdabot audreyt is in #perl6, #ghc and #haskell. I don't know when audreyt last spoke.
hoowa yes 14:07
wolverian just checking if she's spoken recently :)
(apparently not)
hoowa i am hoowa from perlchina
new party in beijing 14:08
thank u
14:08 iblechbot joined 14:11 [particle] joined 14:12 hoowa left 14:14 jabbot joined 14:23 GabrielVieira2 joined 14:39 shay|arm1 joined 14:47 integral_ joined 14:50 GabrielVieira2 is now known as GabrielVieira 14:53 Psyche^ joined 15:04 bonesss joined 15:06 baest joined 15:07 Psyche^ is now known as Patterner 15:11 justatheory joined 15:25 kisu joined 15:45 baest joined, thepler joined 16:03 integral_ is now known as integral 16:12 hexmode joined 16:30 cdfh joined 16:53 REPLeffect_ joined 17:05 justatheory joined 17:08 buetow joined 17:15 kisu left 17:17 ayrnieu joined 17:20 kanru joined 17:32 bernhard joined
ashleyb putter: tell me about yet_another_regex_engine, what's it's goals? What's it written in? How does one help? 17:34
putter: what's it's history? 17:35
17:47 Lorn joined 17:52 TreyHarris joined
gaal putter: ping 18:01
18:10 ruz joined 18:59 audreyt joined 19:01 justatheory joined 19:06 macli joined 19:24 justatheory_ joined 19:59 tulpe joined 20:05 justatheory joined 20:28 explorer joined 20:32 Aankhen`` joined
TimToady just killed off filetest operators! 20:45
PerlJam indeed. 20:47
I'm not sure if I should rejoice or not though
replacing them with pairs seems like it could cause confusinon
er, confusion
but I haven't thought too much about it yet.
[particle] well, it hoists the problem up out of the parser, anyway 20:49
TimToady it fixes a lot of parsing problems
-x is now unambiguously - x()
[particle] does it mean there are reserved keys for pairs now? 20:50
TimToady it will assume there is an x sub declared, and if there isn't one by the end of the compunit, will complain, so I think most p5 brainos will be caught
no
[particle] just reserved on filehandles
TimToady it just reflects back to the object via .PAIR(:x)
rather .TEST 20:51
and Str and IO just happen to define that to do file tests
but it's general
so you can basically test any type for what it thinks of a pair.
PerlJam bare pairs always turn into .TEST(:x) ? 20:52
TimToady and the definition of that belongs to the type
no
only in smartmatch context
when :w & :x
[particle] $obj ~~ :something ==> $obj.TEST(:something)
TimToady basically 20:53
PerlJam Hmm
TimToady but useful in switches without .TEST all over the place
[particle] smartmatch syntax is definitely prettier
PerlJam There's still something nagging me about it, but I don't know what.
TimToady basically any type can choose to respond to "when :foo"
[particle] it's one less thing that reminds you of perl 5? 20:54
PerlJam [particle]: no, that's not it.
perl6 still firmly has the perl spirit even if the clothes are slightly different
TimToady one slight bother is that "when :r :w" doesn't necessarily dwim 20:55
since a List is defined to match like an Array
and :r :w is defined as (:r, :w) in that context
so they either need :r & :w, or they need to say "when all :r :w" 20:56
but that's probably another error we can give a decent warning on.
[particle] looks like -- and junctional syntax is everywhere now 20:57
damian started that with Q::E so long ago, any() and all() are well within most perlers' vocabularies
PerlJam still hears conjunction junction play in his head whenever people talk about perl 6 junctions
[particle] is currently reading "Parsing Techniques - A Practical Guide" -- great read! 20:58
20:59 araujo joined 21:04 larsen_ joined 21:08 rindolf joined
rindolf Aloha everybody. 21:09
21:12 xdg joined 21:16 larsen__ joined 21:23 shay joined 21:36 avar joined
tene tries to forget PerlJam's statement in hopes of avoiding the same affliction. 21:36
21:37 knewt joined 21:55 allbery_b joined 22:04 Alonso joined
Alonso come on. why aer you banning me. it's ficking annoying 22:05
am I too smart or what?
tene Eh? 22:06
Alonso someone banned me from perl
when I was not even on the line 22:07
[particle] #perl on irc.perl.org?
Alonso #perl
[particle] different crowd here
Alonso what is irc.perl.org?
tene Why don't you... uh... talk with the person who banned you?
ofer0 Alonso, magnet
tene Alonso: a different IRC server.
Alonso how can I see who banned me? 22:08
tene because you were in the channel when it happened.
Alonso tene: ok
and sorry about my yelling
tene #perl6 is a different crowd than #perl
Alonso thought you were the same crowd
ofer0 Alonso, Chris62vw banned you @ Fri Jan 26 00:33:47 22:09
Alonso nice cover btw (that chewie.f2o.org/etc/perl.png)
ofer0: thnx. just dropped him a msg 22:11
just because I talked about fpga in relation with perl or somthn. what a pussy
#perl6 is more "alive" than #perl? 22:15
ofer0 Alonso, no, there are about 1/3 of the people that they got there 22:16
Alonso perl6 is ready already? 22:18
any nice into websites?
ofer0 nothingmuch, p6 isn't ready yet.
Alonso *intro
ofer0 but you can still use it if you want to 22:19
Alonso are you discussing syntax and server vs. client side stuff and such?
ofer0 we discuss a lot of stuff 22:20
Alonso cool. may I chill out here for a while and check it out?
ofer0 are you asking me for permission? it's an open channel :) 22:21
Alonso it's just that I feel really welcome in #perl too but then I get banned by old dragons or what to call them ops or wth he he heh 22:22
kk. I'm just chillin then. 22:23
(what a feature) 22:24
22:24 dduncan joined 22:26 [particle] joined
Alonso in perl6 how would I write something like: my $signature = $user->signature ? $user->signature : 'unknown'; in a prettier manner? 22:42
can I somehow ommit to say $user->signature two times? 22:44
wolverian you want the // operator 22:47
(defined-or; it'll be in perl5.10 too)
that is, my $signature = $user.signature // "unknown"; 22:48
(or s/\./->/ if it's perl5.10)
Alonso where would I look up that in the perldoc?
wolverian perldoc only documents perl5. for perl6's specification, see spec.pugscode.org, specifically Synopsis 3 22:49
for perl5.10's docs, you'll have to first download the current 5.9 snapshot and then read perldoc perlop, I assume.
(I don't recommend the latter course, unless you're feeling very adventurous :) 22:50
Alonso can I say my $signature = $user.signature // "unknown"; in perl v5.8.7 also? 22:51
dduncan you don't have to download any 5.x of Perl to read its docs ... those are htmlized and online
wolverian no. 5.10 will be the first perl5 to have the defined-or operator.
ashleyb for that you want 'my $signature = ($user->signature || 'unknown); 22:52
wolverian dduncan, true enough.
search.cpan.org/~rgarcia/perl-5.9.4...fined-Or__
lambdabot Title: NAME operator - search.cpan.org, tinyurl.com/2fn4zz
diotalevi Alonso, hmbrand (I think) also ported the // operator back to a bunch of the 5.8.x perls.
Alonso is scanning that official perl 6 documentation
dduncan I'm looking forward a lot to 5.10, for various reasons
not only because it has some nice 6-ish goodness, but because it bundles a lot of modules that people commonly use all the time as dependencies of other distros ... eg, version.pm, Module::Install, CPANPLUS 22:53
wolverian yes. 22:54
diotalevi But you said $user->signature ? $user->signature : 'unknown' which is just boolean or which you already have in ||/or.
dduncan then we don't have to see all those distros that bundle copies of Module::Install because they want to bootstrap with it ... and we don't have to first go through the complicated process of installing CPANPLUS to use it instead of CPAN
diotalevi So in perl 5 you'd say C<< my $signature = $user->signature || 'unknown' >>. 22:55
wolverian except now the signature can't be "0", so you probably don't want to use that approach at all, and is the whole point of //.
diotalevi wolverian: or ''.
wolverian or that, yeah. 22:56
diotalevi or any objects with overloading that tells them to be false.
Alonso can I ommit the paranthesis in my $signature = ($user->signature || 'unknown'); 22:57
wolverian or 1e-512 :)
Alonso can I ommit the paranthesis like my $signature = $user->signature or 'unknown'; ?
wolverian Alonso, see perldoc perlop for the precedence levels.
|| is tighter than = is tighter than 'or'.
diotalevi See www.cpan.org/authors/id/H/HM/HMBRAND/ for the dor-* patches. This adds // to all 5.8.x perls. 22:58
lambdabot Title: Index of /authors/id/H/HM/HMBRAND
Alonso just wrote my first CMS in perl :) really great gory details I must say :) 22:59
wolverian sounds nasty ;)
Alonso nasty and lively
and btw it's matching the colors in my version of vim which is red in the scalars 23:02
(my version/the gNS version) 23:04
23:07 wilx` joined, explorer joined
Alonso would like to use perl on my mobile phone 23:09
(instead of JAVA) 23:10
s/instead of/in addition to/ 23:11
qmole_ that'd be handy
sort of like a swiss army chainsaw-phone
Alonso yea. then I wouldn't ahve to bother with JAVA stuff ;-D 23:12
23:13 rfordinal joined
Alonso hacked the firmware of many mobile phones some years ago 23:14
in the days they werent ready to use perl 23:15
23:15 Psyche^ joined 23:20 wilx joined 23:24 Psyche^ is now known as Patterner
Alonso perl6 is written in perl6 ? 23:26
TimToady will be
at least the parser
Alonso amazing 23:27
TimToady what, that a text processing language should be able to do text processing?
Alonso maybe some EDA client should optimize it further for uVersions :-? 23:28
I mean modern CPUs are designed for C++ aren't they? 23:29
perl ftw 23:35
I mean what cpus are embedding a hash stack he he heh 23:36
nice project pals. im off for now. talk to you later 23:40
audreyt TimToady: love the ~~:e syntax. finally a sane treatment. 23:48
23:57 weinig is now known as weinig_, weinig_ is now known as weinig