pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | <stevan> Moose... it's the new Camel ":P | .pmc == PPI source filters!
Set by Alias_ on 16 March 2006.
00:11 mako132_ joined
nowhereman Hi, I'm just discovering the world of capabiliy-based security, and I'd like to know if someone has already considered using Perl6 to run capability-based programs (maybe by modifying Perl6 or with just some options or extension to it) 00:16
avar What are capability-based programs' 00:19
cognominal nowhereman: no, capabilty has not been covered. the closer you can get is describe in docs/pdds/clip/pdd18_security.pod 00:21
I see that opcode are tagged, I don't know if this mechanism can be used to mark what capability is necessary to run a given opcode 00:23
for example open is tagged with :filesys_open, it seems to me this has been done with capabilties in mind 00:24
I am talking about parrot here 00:25
KingDillyDilly Since I heard that Windows had Common Criteria certification, I thought it would be cool if some modules or Perl itself had it. A list of orher CC certified products is at niap.nist.gov/cc-scheme/vpl/vpl_type.html . Good way to get attention if a programming language is the first to recieve such certification. 00:36
00:43 amnesiac joined 00:44 dbrock joined 00:53 flounder99 joined
nowhereman avar: (sorry for the delay) in capability-based security, you don't have ambient permissions (as in 'avar has read/write access to /home/avar') 00:53
instead, you invoke all methods of objects through capabilities, and to have access, you must be given the appropriate capability 00:54
and in capability-based systems, it seems to be much simpler to give capabilities to processes than it would be possible to maintain ACLs for processes 00:55
so you have a more fine-grained security
and it has positive side-effects
compromising a program is much harder
because it does not just have access to some resources
it can access them with specific capabilities 00:56
thus, to compromise a program, you must not only instruct it to access the resource you want, you must instruct him what capability, among all it owns, he must use to do that 00:57
TimToady so where would this impact the programming API? 01:01
nowhereman capabilities can be hidden by the API or not 01:12
you can still use fopen()
theorbtwo nowhereman: Right. Now make your capabilities just be objects. 01:13
nowhereman and fopen() could make implicit use a capabilities the perl program has
theorbtwo The only hard bit is keeping the program from using constructors that aren't object methods.
nowhereman the thing is, capabilities must be unforgeable to have usefulness
in some systems, you use capabilities with slots 01:14
theorbtwo nowhereman: I think most perl6 objects are. (Unlike most perl5 objects.)
theorbtwo wonders if it'd be useful to have a automagical index of type names in A*, by forcing the authors (I'm looking at you, TT), to write C<::...> when talking about a type.
nowhereman say I gain a read capability to a file, and it goes to a slot name FILE, I'll do something like FILE->read(), but I must have no means to read the capability itself 01:15
the capability must be opaque to me 01:16
so there must be some enforcement by the runtime or the OS
01:22 xern joined 01:26 frederico joined 01:28 jsiracusa joined 01:35 kanru joined
TimToady theorbtwo: grep 'C<[A-Z][a-z]*>' * seems to work fine on the synopses 01:54
theorbtwo Ah, I suppose it would.
buu Help! Perl6::Form is driving me insane 02:00
obra seen audreyt 02:01
jabbot obra: audreyt was seen 8 hours 47 minutes 8 seconds ago
buu I'm trying to devise a format so the overflow is placed on the next line
Or alternatively the text is wrapped.. 02:02
02:03 FB|afk is now known as FurnaceBoy
buu It seems like there should be a way to make it work.. 02:05
Ahh, nice 02:09
02:18 LCamel joined 02:20 LCamel joined 02:26 KingDillyDilly left 02:28 LCamel joined
buu Hmph 02:35
It ignores page width. Awesome.
clkao 02:36
buu Nice space
02:37 mako132_ joined 02:39 KingDillyDilly joined 02:44 weinig is now known as weinig|sleep
FurnaceBoy makes me wish gaim didn't run on windows 02:47
buu Grah. There has to be a sane way to use this.
svnbot6 r10072 | audreyt++ | * README - even more "compilation copyright" clarification. 02:54
TimToady audreyt: s/DISCAIMER/DISCLAIMER/ 03:01
svnbot6 r10073 | audreyt++ | * 05:03 < TimToady> audreyt: s/DISCAIMER/DISCLAIMER/ 03:03
TimToady Guess I coulda done that myself, now that I think of it... :) 03:04
pmichaud good evening, all 03:05
TimToady But then, I suppose I could just go in and change everything to Artistic 2. Bwah, ha, ha!!!
pmichaud: howdy 03:06
"all" isn't very much at the moment.
pmichaud tis enough for me :-)
any ideas for re-christening PGE with a new name? ;-)
(since I know that "PGE" has some negative connotations :-)
audreyt it does? :) 03:07
pmichaud I'm doing some rework, so now might be a good time for a renaming
TimToady well, PIG wouldnt do...
pmichaud on the west coast, "PGE" == "Pacific Gas and Electric"
TimToady I don't think you really need to worry about PG&E...
audreyt I think PGE is fine...
pmichaud okay, we can keep PGE then :-)
TimToady I'm easy.
sometimes...
am I changing the spec faster than you can keep up? 03:08
pmichaud no, not really
PGE has a fair bit of historical baggage in it (due somewhat to Parrot limitations at the time) so now's a good time to clean things up
for example, when I first wrote PGE, we didn't have named parameter passing, or slurpy parameters, or ... 03:09
PerlJam good evening pmichaud, TimToady, audreyt 03:10
pmichaud heya, PerlJam
TimToady I'm afraid I've been somewhat delirious the last few days. A low fever is a wonderful thing for certain kinds of mentation...
PerlJam pmichaud: where has PGE a negative connotation? 03:12
pmichaud perljam: think "CP&L"
TimToady central?
pmichaud yeah, "Central Power and Light" :-)
TimToady only gas and electric in our case... 03:13
pmichaud although I don't know what they're calling themselves today -- they've changed their name a couple of times
TimToady off to ruin a few more good acronyms, eh?
PerlJam pmichaud: well, if you do change the name, it *must* start with P :-)
pmichaud I do know that CP&L had a very nasty habit of being off by 1kWh when reading my meter :-( 03:14
TimToady and not have y as the second letter...
well, if they have PyPy, maybe we should have PePe... 03:15
PerlJam yeah, the full set of letters to stay away from is y,t,h,o,n,u,b ;-)
TimToady PIRE (Perl Incompatible Regular Expressions)
PIRX 03:16
pmichaud aha! prix!
PerlJam heh
pmichaud (don't know what it stands for, but it sounds cool)
arcady PIIE (Perl Incompatible Irregular Expressions)
pie!
TimToady Saul, Saul, it is hard for thee to kick against the prix.
PerlJam pmichaud: it also sounds vaguely obscene.
TimToady too amuricn.
pmichaud no, pj, as in "grand prix" 03:17
TimToady PIRT Perl Incompatible Rules & Tokens...
PerlJam pmichaud: And you don't think that it'll get pronounced the other way more often than not in the US?
pmichaud perljam: touche' 03:18
TimToady PCRER.
... redux. 03:19
or Reprise
PCRERE
PCR Perl Chain Reaction--really confuse the bioperl folks... 03:20
03:20 azuroth joined
PerlJam fglock already has PCR 03:20
TimToady PKRE 03:21
PerlJam (and I can't help but think Polymerase Chain Reaction every time I see it)
TimToady RENEW (sounds environmental)
and of course, the FSF's forked version, REGNU 03:22
PerlJam heh
NAIRE
New and Imrpoved
er, s/rp/pr/
TimToady New and Improvised
SEX 03:23
S*E*X
PerlJam Rules and Tokens and Grammars RaTaG
pmichaud uh oh. "Rules and Tokens and Grammars, Oh My!" 03:24
TimToady Six Extended eXpressions
rotting?
PerlJam TimToady: you're starting to go quite the wrong direction with this ;)
TimToady told you I was delirious...
PerlJam MRE (more) QRE (quantum) RETNG 03:29
buu Perl6 rules =[ 03:35
Actually, I meant forms. 03:36
TimToady you'll have to file a formal complaint
buu Where? 03:38
Hrm. My problem is I want an overflow field to only show up if there is data to flow in to it
At the moment it works fine, but when there is no data I get unsightly newlines. 03:39
pmichaud the line for complaints forms on the right
TimToady and stretches all the way to Australia, in this case... 03:40
Maybe you should just fix it and send a patch to Damian...it's just Perl 5... :D 03:41
buu Or I could use a block, but then it repeats characters =[
TimToady on the other hand, he's redesigning it all right now anyway, since I swiped his curlies for closures... 03:42
buu Damn.
TimToady that was a long time ago... 03:43
buu Basically I have something like: ({<<<<}) {[[[[[+}; which almost works, but the parens are repeated when the block wraps
So I get unsightly ( ) lines
I could use an overflow block, but then if there is no data it renders as a new line. 03:44
I suppose I could manually pull out blanklines..
TimToady You'll really have to complain to Damian about it. I kinda meant it when I wrote Apocalypse 7 in six words. 03:46
Two of which were "See Damian"
buu ! 03:47
Yeah, but he's not coviently on IRC so I can yell at him
pmichaud it's probably convenient for him :-)
buu Yeah, probably.
I rather like the power and flexibility of p6::forms, but it'd be nice if someone other than me could ever understand how to use them.. 03:48
Or at least, someone using my program
TimToady It's no accident that Damian gives talks entitled "Sufficiently Advance Magic" 03:49
buu Heh.
I just need a SIMPLE way to define some kind of format for my console output
Perhaps I can do some bastardization of printf
TimToady
.oO(Some would call that redundant)
03:52
buu Well, yeah 03:53
But the basic concept is simple enough
I'm trying to decide how I could specify wrapping..
TimToady If it's good enough for Apostle Dennis, it's good enough for me...
buu Dennis? 03:54
TimToady of K&R fame.
buu I see. 03:55
SamB is Sufficiently Advanced Magic indistinguishable from Technology? 03:58
buu We can hope. 03:59
04:12 kanru joined
audreyt TimToady: "Buf" is a reference type then? 04:44
(.id not depending on content) 04:45
TimToady: also, for "buf", would it make sense to extend it? I can see maybe "pop" or "shift"
as well peek and poke
but pushing into a buffer means another malloc() underneath
not sure "buf" is the correct layer to do that
not sure about "Buf" either
TimToady I think of a buf as basically a Perl 5 string, non-unicode version, for good or ill 04:47
audreyt me too 04:48
so in that case you can't poke into it...
TimToady it would be nice to be able to lock one down to a particular patch of virtual memory.
audreyt substr("x", 0, 1, 'y');
# error
TimToady you're no fun. 04:49
audreyt indeed
if you want to poke into it, then it's a fixedsizedarray
but fixedsize means it can't be extended
(yeah, it's not fun :))
TimToady I think bufs that aren't locked down should be just as extensible as arrays. 04:50
audreyt ok, but is the extended buf the same buffer? 04:51
that is, does it change the .id?
TimToady Their id is the object that keeps track of where it really is.
audreyt ok, so dynamic malloc() is needed 04:52
one way or another
that's fine...
04:52 beppu joined
audreyt but they are continuous, not sparse? 04:53
TimToady yes.
(I think.)
audreyt good, so it's essentially native "seq" operating on "uint"
TimToady I'm thinking of the recent Linux controversy over sending buffers through the kernel
audreyt with the ability to realloc if needed
TimToady I'd be nice to have a buffer abstraction that could manage that for you. 04:54
audreyt right
TimToady did you see that
?
basically Linus saying COW is stupid way to send messages. 04:55
audreyt yeah.
TimToady and that for efficiency you have to be able to send chunks of vm over to the kernel.
audreyt how does that relates to this...? 04:56
TimToady so we can have a buffer whose virtual address changes but is logically the same "write buffer"
beppu kerneltrap.org/node/6506
TimToady it's locked down in the sense of size, but not in the sense of address.
audreyt so you mean, we have extensible buffer
and locked down buffers
and using the same object
it carries the state of lockedness 04:57
TimToady maybe
audreyt and you can toggle them
in locked state it guarantees to not call malloc
and may do some defrag before that
in unlocked state it reallocs as needed
TimToady basically you shouldn't keep pointers into the buffer.
audreyt which may cause frags
yeah. but to pass to C-land for foreign function interface
TimToady because they may get falsified, even for a non-extensible buffer.
audreyt you'll have to lock the buffer 04:58
and if you unlock it on perl6 land
the the C-land guarnatees are moot
so maybe it's born unlocked, and can't be unlocked once locked.
TimToady I think Buf is the interface, but there may be various instances.
audreyt Buf is fine. I'm worried about buf :)
TimToady instantiations of the role
audreyt (since it's "mapping to native storage")
TimToady buf is probably not the locked down one. 04:59
audreyt oh. hm.
I thought it's (char*, strlen).
TimToady or it is.
audreyt I think is makes more sense
and Buf manages bufs if needed
TimToady makes sense
audreyt Str alsomanage bufs
imbue them with encoding etc
04:59 elmex joined
TimToady Str doesn't necessarily manage a buf directly. 05:00
you can have strings whose minimum abstraction level is above buffers.
audreyt yeah, but Str is potentially fragments
oh sure
I'm talking about internals :)
I agree Str.specs is Bad Idea (tm)
dankogai absolutely hates that, so do I :) 05:01
TimToady which?
audreyt the ability to get the underlying buffer form a unicode string.
you know, utf8::downgrade.
TimToady well, someone has to deal with the bits sooner or later... :P
audreyt but that makes the internal encoding explicit :) 05:02
Str users shouldn't care
esp. if you are operating on graphemes level.
so Str.to_buf(:encoding<utf8>) is fine 05:03
but autodemotion, or destructive demotion, is very bad idea
(and the cause of most, if not all, of the "weird utf8 displaying as latin1" problem in Perl applications)
(together with autopromotion) 05:04
TimToady But I can see uses for Str variants that let you muck around a various levels simultaneosly. They don't have to be the default, of course.
audreyt sure
TimToady even just switching between codepoints and graphemes is pretty useful at times.
audreyt the default should present value semantics and keep that useful illusion :)
sure, just not destructive "poke" at a level
that can make another level invalid
to a Str
which is what you can do, rather too easily, in perl5 05:05
TimToady Well, sure, you wouldn't just assume you know the actual lower level encoding ever.
audreyt right
yay :)
TimToady we tried to switch over to a strict abstract level in P5, but it just didn't fly...
too much baggage.
audreyt *nod* 05:06
<- was part of the 5.6-didn't-fly-let's-just-get-along 5.8 reunicoding
TimToady well, that wasn't the bad part of 5.6... :/
audreyt shared threading was? :p 05:07
mm but that was 5.5
what was the bad partof 5.6 then? vstrings?
TimToady nah, it was the assumption you could drive the whole thing lexically.
audreyt ah, right. 05:08
TimToady has to be an agreement between what the interface provides and the lexical scope expects.
a negotiated contract, if you will.
audreyt so perl6's lexical "unicode level"
has to be agreed by Str
TimToady that's why I keep going on about multiple abstraction levels.
audreyt instead of blindly (and destructively) thrown to all SVs
audreyt ponders how best to support a default-grappheme .chars. 05:09
TimToady and if you're outside the contract, you have to negotiate on a case by case basis, or at least autoupgrade.
where it's safe.
and blow up where it's not,
audreyt yes.
exactly.
autoupgrade most not do harm
destructive autodowngrade always do harm, so is forbidden
05:09 scw joined
TimToady right. 05:10
audreyt s/most/must/
TimToady do my recent spec tweaks make sense to you 05:11
no need to answer--I'm sure you'll carp suitably as the occasion arises. :) 05:12
audreyt it all makes sense :)
[ <]]]> ]
vs
[<]]]> ] 05:13
is that the correct diambig?
TimToady [<] is a longest token
audreyt (and also [< ])
right, but no whitespace allowed
TimToady no whitespace in reduces
I think the chances of someone wanting to start a <...> with ] and then put it into [...] are vanishingly small. 05:14
but I've always assumed we couldn't have whitespace in a reduce.
indeed, I've always assumed that reduce operators were rather strictly limited. 05:15
audreyt macro infix:<`> is parsed(/<ident>`/) ($lhs, $rhs) { P6AST::Call.new($<ident>, $lhs, $rhs) }
[`map`] ...;
TimToady um, how is that an infix? 05:16
audreyt assuming that "is parsed" modify how the infix itself is parsed 05:17
@x `map` &y;
TimToady but yeah... or just circumfix:<[` `]>...
audreyt nod
TimToady gotcha
audreyt I think it makes more sense for the "is parsed" for macro to regulate the parsed itself 05:18
TimToady I keep struggling nobly to reserve ` for users...
audreyt if you want to change rhs parsing, write
macro infix:<====> ($lhs, $rhs is parsed(/.../)) { ... }
I think it's more visually distinct
rather than saying "is parsed for infix always apply to rhs" 05:19
TimToady I guess I just like symmetry, but infix macros are by definition not...
audreyt indeed..
and sometimes you want to fix both the infix token itself
_and_ the rhs 05:20
where the current convention wouldn't allow
TimToady fix?
audreyt rig
macro infix:<moose> is parsed(/antler|elk/) ($lhs, $rhs is parsed(/foo/)) {...} 05:21
4 mooseelk foo;
TimToady I guess it's probably not ambiguous. 05:22
audreyt it also removes special casing in per-grammar category code
such that grammar categ become purely just differently named hashes, used in different places 05:23
TimToady people are so used to seeing the signature first. but maybe we just need to think harder about combining patterns and sigs.
audreyt *nod*
05:23 autark joined
TimToady is parsed being a placeholder for an inside out / :(...) / of some sort. 05:24
( :/.../ )
05:27 kanru joined
audreyt yup 05:33
05:34 Quell joined
TimToady or just allow rule, token, regex declarators right in the sig 05:34
( $x rule {...}, $y token {...}.... ) 05:35
audreyt trait auxillary rule?
wow :)
TimToady something to think about when I'm not running a fever... 05:36
audreyt $x is rule{...}; # reads better
indeed
TimToady I should probably sleep.
time zones suck. 05:37
audreyt gnite :)
TimToady sniffle. <achoo>. 'nite... &
05:38 justatheory joined
audreyt bbiab & 05:49
05:49 macroron joined 05:50 diotalevi_ joined 05:51 Quell joined 05:55 Quell joined 05:56 Quell joined 05:58 Cryptic_K joined 06:14 xern joined 06:15 xern joined 06:29 r0nny joined 06:34 diotalevi^ joined 06:35 iblechbot joined 06:36 marmic joined 06:47 pjmm joined 07:01 Aankhen`` joined 07:05 ayrnieu_ joined 07:07 ayrnieu_ is now known as ayrnieu 07:22 drrho joined 07:43 DesreveR joined, ghenry joined 07:49 pjmm left 08:00 kd joined 08:07 shachaf_ joined
svnbot6 r10074 | vkon++ | need parsec as build-depends, in order to compile 08:20
08:21 Grrrr joined 09:12 larsen joined 09:20 kane__ joined 09:57 KingDiamond joined 10:00 dakkar joined 10:22 cdpruden joined 10:42 kakos joined 10:48 Aragone is now known as Arathorn 11:05 elmex joined 11:08 Odin- joined, Aankhen`` joined
kd seem to be having a problem with Perldoc-0.20 Is this a good place to ask for help? 11:15
dakkar I'm not sure... is Perldoc related to Perl 6? 11:16
kd afics it's the 1st impl of kwid parsing and output. 11:17
dakkar oh
kd but in perl 5
anyway the example code in the cpan dist is not working for me. 11:18
:<
Can't use string ("") as a SCALAR ref while "strict refs" in use at /usr/local/share/perl/5.8.8/Perldoc/Writer.pm line 20.
using Perldoc::Parser::Kwid
dakkar how did you invoke it? did you pass something for 'stringref'? 11:20
kd just as in the docs for Perldoc::Parser::Kwid 11:21
dakkar oh, I got it
the example is wrong
it should read '\$html'
not '$html'
Writer expects a reference
kd ah, ok. I guess I'll report it to rt then. Thanks
:))
thanks v much dakkar. 11:22
dakkar you're werlcome
kd reported 11:28
11:32 KingDiamond joined 11:35 kanru joined 11:37 arguile joined 11:58 Limbic_Region joined 12:01 mako132_ joined
Limbic_Region audreyt ping 12:06
audreyt pong 12:17
12:18 KingDillyDilly joined 12:19 |mjk| joined, Coke joined
KingDillyDilly According to colabti.de/irclogger/irclogger_log/...-04-25,Tue at 2:44 I logged back in and never left. But I closed Gaim and disconnected from the internet. Either an imposter logged in as me or my leaving didn't register. Someone should check the IP addresses. 12:20
12:23 kolibrie joined
Limbic_Region audreyt - did you see the nopaste from last night (my time) 12:25
I created a caller backtrace to find what was causing Win32 to crash on build 12:26
I didn't fix it because I wasn't sure how you would want it fixed
just changing a / to a char class of either / or \ should do it, but that probably is not the "right thing"
see sial.org/pbot/16886 12:27
12:27 iblechbot joined
audreyt woot 12:30
Limbic_Region++
the charclass fix is right. 12:31
please verify and commit
12:35 elmex_ joined
audreyt Alias++ # reminds me that I have yet to commit+release self-recursive-structure-happy YAML::Syck 12:38
...which I'm doing now.
12:39 ewilhelm_ joined
Limbic_Region audreyt - can't until tonight but will do 12:40
audreyt oh, nvm then 12:41
Limbic_Region has no idea why he is no longer able to build at all at work
nmake is failing on cd ..
svnbot6 r10075 | audreyt++ | * build_pugs.pl: On certain Win32 File::Spec versions, 12:46
r10075 | audreyt++ | ->canonpath returned a backslash form that we failed to
r10075 | audreyt++ | handle. Limbic_Region++ for pointing it out.
r10076 | audreyt++ | * er, sorry, syntax error. 12:49
Limbic_Region audreyt - so updating File::Spec should fix that? 13:12
Limbic_Region puts it on his todo list 13:13
audreyt the PathTools has seen a lot of changes
13:13 frederico joined
audreyt I no longer track all the win32 fixes 13:13
so working around here makes sense
13:14 particle_ joined
Limbic_Region ok - well that regex felt funny anyway - why the slice? It wasn't matched globally so there should only be 1 match 13:15
that's why I didn't want to touch it without talking to you first - I don't really know what's going on 13:16
audreyt sure
the correct way is to match
then test
then die
then use $1
13:32 Qiang joined 13:35 weinig|sleep is now known as weinig|away 13:36 Aankhen`` joined, kane__ joined, larsen joined, dbrock joined, froh-doh joined, xinming joined, jserv-- joined, SubStack joined, lisppaste3 joined, oozy joined, PerlJam joined, gaal joined, f0rth joined, Soga joined, tcliou joined, buu joined, amv joined, rgs joined, rashakil joined, rmoriz joined, hcchien joined, sri_ joined, miyagawa joined, qwacky joined, obra joined, perlbot joined 13:43 aeon_ joined
KingDillyDilly All of the above are really just buu, aren't they. 13:45
13:45 diotalevi_ joined 13:50 chris2 joined 13:54 vel joined 14:04 diotalevi^ joined 14:19 lidden joined 14:23 jmcadams joined 14:29 fglock joined 14:34 KingDiamond joined 14:36 jmcadams left 14:51 cdpruden joined 15:01 premshree_ joined 15:02 aufrank joined 15:06 hexmode joined 15:11 aufrank joined, aeon_ joined, Aankhen`` joined, kane__ joined, larsen joined, dbrock joined, froh-doh joined, xinming joined, jserv-- joined, SubStack joined, lisppaste3 joined, oozy joined, PerlJam joined, gaal joined, f0rth joined, Soga joined, tcliou joined, buu joined, amv joined, rgs joined, rashakil joined, rmoriz joined, hcchien joined, sri_ joined, miyagawa joined, qwacky joined, obra joined, perlbot joined 15:29 azuroth left
PerlJam good morning #Perl6 people 15:43
xinming evening here... might be midnight soon. :-)
PerlJam well, good $localtime then :) 15:44
15:44 justatheory joined
audreyt :D 15:45
PerlJam is sitting in an airport waiting for his flight (scheduled to leave now but delayed by about 30 min)
particle_ thinks it's still the dawn of the perl age
audreyt TimToady: is cat(@a;@b) really required?
xinming audreyt: where are you now? TW?
audreyt seems it's the same as (@a, @b)
xinming: yeah
15:48 FurnaceBoy joined
aufrank yay! the room woke up! 15:48
audreyt sadly it's almost sleep time to me, really... 15:49
audreyt had a long coding day
coding++
PerlJam audreyt++ 15:50
audreyt released YAPC::Syck with recursive structires support, yay
er, YAML::Syck
YAPC::Syck would be fun.
going to port that to Pugs as well, so we can also dump/load graphs easily
PerlJam What is cat()? is it like unix cat(1) ?
audreyt PerlJam: I have no idea 15:51
I was cleaning up S03 (just committed)
and "cat" is mentioned in passing comapred to "zip"
To read arrays serially rather than in parallel, use C<cat(@x;@y)>.
which makes me rather confused
PerlJam indeed.
wolverian isn't that just (@x, @y)? 15:52
audreyt that's my question to TimToady.
xinming IMO, (@x, @y) might become \@x and \@y in for.... :-) 15:53
*@x, *@x might be the same though...
xinming wasn't sure either...
PerlJam notes that S03 doesn't say what "tuples" are. 15:54
A spec should be more specific than that :)
Though I suppose that tuples should be defined in S09 15:56
cat(@x,@y) must be the same as (*@x,*@y) 15:58
aufrank PerlJam: tuples are now Sequences
if that helps at all
PerlJam aufrank: then why does S03 still talk about tuples? :) 15:59
aufrank don't ask me, I just work here
PerlJam er, cat(@x;@y) I meant
cat() looks like it was borrowed from PDL (where cat() concatenates piddles) 16:00
aufrank: and if true, this sentence sure does read weird: "To read arrays in parallel like zip but just sequence the values rather than generating tuples, use each instead of zip"
s/tuple/sequence/ and it's all wrong. 16:01
aufrank yeah, yuck 16:02
lemme find the change I'm thinking of
check S06 16:03
audreyt PerlJam: I just killed tuples in S[2346]
16:03 diotalevi_ joined
audreyt A "Seq" is simply a List with no lazy parts (such as Range objects) in it: 16:03
(1,2,3); # Seq
aufrank Seq Completely evaluated (hence immutable) sequence
audreyt (1..3); # Range
(1, 2..3); # List
PerlJam audreyt++ 16:04
theorbtwo So zip(1..3; 'a'..'c') ~~ (1, 'a', 2, 'b', 3, 'c'), but each(1..3; 'a'..'c') ~~ (1..3, 'a'..'c') ? 16:05
PerlJam oops, plane is boarding
PerlJam &
audreyt zip(1..3; 'a'..'c') === ((1,'a')[], (2,'b')[], (3,'c')[]) 16:06
(using postfix [] notation; means the same as prefix "scalar") 16:07
each(1..3;'a'..'c') === (1,'a',2,'b',3,'c')
wolverian is that zip() === (1, 'a'; 2, 'b'; 3, 'c') ? 16:08
TimToady audrey: sure, we can hand out "useless use of cat" awards.
theorbtwo Ah, so for zip(1..3; 'a'..c') -> ($a, $b) {...} will fill in both parameters.
each(1..3; 'a'..c') -> ($a, $b) {...} will just fill $a, and be rather silly. 16:09
audreyt TimToady: so "cat" is just alternate spelling for "[,]"
TimToady: can we kill that please? :)
TimToady maybe we'll put in a box...
audreyt theorbtwo: actually... no. ($a, $b) takes two params, so that's fine for "each"
the "zip" only produces one object 16:10
so you have you say
-> [$a, $b]
and use unpacking
TimToady optimizer could, of course, avoid the packing/unpacking.
theorbtwo OK, that makes mild amounts of sense.
audreyt TimToady: so zipping against 1..* really does do numbering 16:11
as inf lists are now ignored for lengthing
theorbtwo ?eval @x = 'a'..'k'; $count = (each(@a; 1..*))[-1]; 16:13
16:13 evalbot_10061 is now known as evalbot_10076
evalbot_10076 *** unexpected "*" expecting comment or subroutine name at -e line 3, column 9 16:13
audreyt we don't support each, nor nullary *
TimToady hopefully, as long as we can tell something is infinite.
audreyt still thinking about nulary * support, actually.
TimToady as in, how to imlement? 16:14
ewilhelm_ could one use fib() instead of 1..* ?
TimToady or as in, whether to...
audreyt as in, what it really means :) 16:15
but I should probably sleep first before thinking too hard
(*).defined is true, right?
TimToady It's just an out-of-band term that means "whatever"
16:15 ewilhelm_ is now known as YetAnotherEric
audreyt sure, just trying to think through the consequences 16:15
theorbtwo TT: Does it construct/return the one-and-only object of type Whatever? 16:16
TimToady probably more useful to consider it defined, but unspecified.
It's very much a "decide for yourself" kind of thing 16:17
particle_ print 'whatever' for ^*;
theorbtwo is scared when specifications say "the specification doesn't care".
TimToady but it's distinguished from undef in that the intent is clearly not to blow up the construct you're passing it to, but to grant it freedom. 16:18
At one point it was identical to Any. 16:19
But I don't want people to consider deriving from it.
aufrank this sounds ripe for "but maybe Damian will want to, so go ahead!" ;) 16:20
TimToady we could still force it to mean Any, but it seemed there were other reasons for a separate type that I don't recall before my coffee has brewed.
theorbtwo
.oO( $x does * -- please install all of CPAN for me. )
TimToady use *; 16:21
particle_ import io.*;
aufrank I was just going to write all of my assignments as *;
particle_ sorry, wrong channel :)
TimToady yeah, well, just 'cuz * is there doesn't mean we have to make every operator recognize it. 16:22
particle_ * ~~ *
TimToady but do you *want* it to match?
audreyt TimToady: so. (*).isa(Moose) is not true by default
TimToady right 16:23
audreyt and any operator or class that allows morphing from (*) or taking (*) arg
must explicitly declare it as such
TimToady nor is Moose.isa(*)
aufrank audreyt: you are terrbile at this going to sleep thing!
audreyt unless the "isa" handles (*)
TimToady right. for writing it, it's just type Whatever in the sig.
audreyt aufrank: indeed. parrot sketch is in 1:45 hr
TimToady for MMD matching 16:24
audreyt and I'm wondering if I should stay up
but then, that may make waking up tomorrow for $job difficult
particle_ audreyt: take a nap
theorbtwo thinks it might be useful for $_ ~~ * and * ~~ $_ to always return 1.
audreyt wonders if time zones are such a good idea
TimToady I have to do the interview today that didn't happen yesterday...
so I have to wander off.
Let's just squish the earth flat. 16:25
YetAnotherEric install more suns
particle_ haven't you read the new book? the earth is flat.
TimToady no, no, the book is flat--the earth has leaves.
audreyt under list context, right?
theorbtwo $g *= 10;
particle_ the earth is flat. your sense of time is warped. 16:26
TimToady why would that increase $g that much?
theorbtwo Whoops, make that $G *= 10;
TimToady that's more like it.
my first program I wrote in Physics was named "G". 16:27
theorbtwo No, you've got that backwards -- amp up G (and thus g) to flatten.
audreyt TimToady: so, if I have
"foo; ..."
and never define sub foo nor class foo until CHECK
it blows 16:28
what about
"foo(); ... "
?
same thing?
TimToady I think that, unlike in Perl 5, it should be the same.
audreyt thank you, thank you.
audreyt kills 4 AST forms and merges them into 2.
TimToady curtsi....bows...
audreyt TimToady++ 16:29
TimToady course, stub predecl still works, and allows deferral till runtime.
autoloading still works, in other words. 16:30
audreyt sure. 16:31
and .meth always works.
there's no static binding requirement form ethod calls, I hope.
theorbtwo Even if the compiler knows what type the object is? 16:32
audreyt I hope so, as method dispatch is by runtime type
unlike C++
TimToady: so, $x.foo is always fine, regardless of whether &foo is seen 16:33
TimToady yes
theorbtwo But there will be cases where the compiler can prove that at that point the object will be a specific type.
audreyt instead of any of its subtypes? 16:34
TimToady only if you've managed to close/finalize the class.
audreyt if so, that becomes optimization, and under -O, sure
TimToady and that's an application wide negotiation.
audreyt but without -O, all classes stay open
theorbtwo Hm, OK.
TimToady must go get ready for interview. will check back in 20 minutes... 16:35
&
theorbtwo Later. 16:36
audreyt S02 updated with clarifications. 16:37
TimToady seems good, though the foo($x) vs foo($x,$y) distinction is a bit wonky... 16:52
audreyt it's neverless specced... 16:53
nevertheless, even
freudian slip
TimToady basically, though, for a given name, we don't need it defined, we just need to know where we will eventually start looking.
audreyt aye. 16:54
aufrank wishes he could script his speech analysis program in perl
Arathorn wishes he could implement his SIP stack in perl6 16:58
TimToady wishes he could write Perl in Perl... 17:00
aufrank ?eval say "Perl"
evalbot_10076 *** unexpected "*" expecting comment or subroutine name at -e line 3, column 9
audreyt ?eval say 1 17:02
evalbot_10076 *** unexpected "*" expecting comment or subroutine name at -e line 3, column 9
audreyt wow.
17:02 flounder99 joined
audreyt what's wrong with that bot? 17:03
audreyt thinks
obra audreyt: have you done shootouts between Storable, YAML::Syck, Data::Dump::Streamer, etc? 17:04
cdpruden audreyt, I don't know if it's related, but ext/Set and a few other modules don't seem to be working right now either -- "pugs: *** Undeclared variable: "$other"" 17:06
audreyt obra: yes
cdpruden: right, that's known, fixing it
svnbot6 r10077 | audreyt++ | * allow "sub *foo" again, in an attempt to fix evalbot.
cdpruden oh, cool
audreyt the predictive parsing makes it 25% faster to aprse Test.pm 17:07
more improvement expected
but the breakage is unfortunate
will definitely fix soon
obra: someone did
obra pointer?
audreyt idisk.mac.com/christian.hansen/Publ...rialize.pl 17:08
chansen
17:08 zgh joined
audreyt YAML::Syck 5991/s 3547% 975% 567% 204% -- -4% -87% 17:09
JSON::Syck 6260/s 3710% 1023% 596% 217% 4% -- -87%
Storable 46418/s 28152% 8228% 5064% 2252% 675% 642% --
on my computer
compared to pure-perl bunch, the leader being
FreezeThaw 1973/s 1101% 254% 120% -- -67% -68% -96%
so it's pretty good, I'd say.
YAML.pm is 164/s.
?eval 5991 / 164 17:10
17:10 evalbot_10076 is now known as evalbot_10077
evalbot_10077 5991/164 17:10
audreyt heh
ingy :)
miyagawa audreyt: seen JSON::PC?
jabbot miyagawa: I havn't seen JSON::PC, miyagawa
particle_ <purl> 36.530487804878
obra audreyt: thanks 17:11
audreyt miyagawa: cool!
miyagawa: 5.8+ only currently
particle_ jabbot speaks doublespeak when it's speaking to others
TimToady interviewer here now, biab & 17:12
audreyt miyagawa: JSON::Syck goes back to 5.004 or 5.005
miyagawa audreyt: yeah. That's yet another horribly badly named new module by the same author with JSON
audreyt but otherwise, maybe some day ::PC can take over :)
aww :/
miyagawa and horribly complex interface again
well, it looks like just a straight XS port of JSON.pm though
tested it and it's pretty fast
audreyt nice
miyagawa i added the module to chansen's script and it was fastest 17:13
audreyt woot
not entirely surprising
miyagawa right
audreyt so, nice work
miyagawa yup, probably 17:14
I'll be in Chupei thursday night
audreyt woot
I'll see if I can finish enough of $job to go to meet you
miyagawa ok :-)
I'll be back to Japan on monday
obra audreyt: how heavily are you using continuations in jifty for $job? 17:15
17:16 trym joined
flounder99 ?eval my $x = [1]; 17:16
evalbot_10077 Error: unexpected "1" expecting infix operator
audreyt obra: just for login at this moment
obra ok. then you don't care about the thing we're doing. Heavy continuation use has a perf penalty due to Apache::Session's serialization 17:17
audreyt nod. earlier on ->tangent was broken (very early on) 17:18
and I restructured my design to avoid continuations
(and also because that I want to minimize disk writes)
svnbot6 r10078 | audreyt++ | * fix [1] to mean [1], instead of failed infix lookup on infix:<1>.
flounder99 Thanks, I didn't think square brackets changed that much 17:19
audreyt flounder99: sorry, the past 48 hours has seen a lot of Parser changes
expect all of them be settled in the next 48 hours
17:21 weinig|away is now known as weinig
flounder99 I'm impressed it works at all as many fingers are in the pie; let alone work as well as it does 17:22
theorbtwo audreyt: You should probably change "at" to "before" or "after". Do CHECK blocks run, or not?
audreyt theorbtwo: it's one of the CHECKs 17:23
I don't know if it's going to be the last or first one
I can argue bothways.
FurnaceBoy you're double-tongued? 17:24
audreyt right, with unsigned long tongues.
FurnaceBoy :B
17:32 bernhard joined 17:34 DaGo joined
particle_ eew. 17:35
svnbot6 r10079 | audreyt++ | * [1] now parses again for real 17:51
audreyt *wave* & 17:54
xinming audreyt: ++ 18:01
audreyt: good nite. :-)
don't sleep with a eye on screen.
18:17 aeon__ joined 18:22 Arathorn is now known as Aragone 18:25 hexmode joined 18:36 zgh joined 19:06 ruoso joined 19:12 elmex joined 19:20 lilo is now known as gittus_, gittus_ is now known as lilo 19:27 FurnaceBoy is now known as FB}afk 19:28 SamB joined 19:44 larsen joined 19:49 penk joined 20:30 kanru joined 20:35 FB}afk is now known as FurnaceBoy
fglock re SoC: how about translating some compiler tools to perl6? for example, a precedence parser, a rule/token implementation, an attribute grammar module 20:50
20:52 macroron joined 21:03 DaGo joined 21:09 stevan_ joined
KingDillyDilly Are there any functions and whatnot in Perl 6 that might be good to add to Perl 5? 21:10
There are other versions of Perl 5 coming before Perl 6, right? 21:11
cdpruden Perl 5.9 is under development now, and will eventually be 5.10... there are plans for other 5.x series perls (such as ponie) but that is up in there air a bit now as to just which ones/where 21:14
buu For example, given is implemented in 5.9.3 or so 21:16
21:16 FurnaceBoy_ joined
fglock search.cpan.org/~rgarcia/perl-5.9.3...hancements 21:17
21:19 fglock left
KingDillyDilly Oh no...say. Basically print with a new line from what I remember. 21:20
I don't think I'd have Perl 5 developers have to come across "say" before Perl 6. Not necessary and potentially confusing. 21:22
Find if they see it in the manual, but best not to have them see it in people's Perl 5 code when they didn't know about it. 21:26
s/Find/fine/ 21:27
particle_ that's what the manual is for.
KingDillyDilly I had a bunch of stuff to say about say on Wikipedia, on a talk page...wish I knew where 21:29
I was imagining audio functions in the future that might make say confusing. 21:30
pasteling "KingDillyDilly" at 71.247.70.239 pasted "Comments about "say"" (1 line, 1.2K) at sial.org/pbot/16901 21:36
KingDillyDilly (found it...didn't reread it. Hope it still makes sense to me) 21:37
21:39 pjcj joined
ruoso KingDillyDilly, you are still able to create your very own programming language with parrot and be interoperable with Perl 6... go for it, just get hacking... 21:39
KingDillyDilly I guy who hasn't even memorized how to use hashes has no business going that. He just tells others to. 21:40
I just uses hashes for that alfabitizing trick, and I always look up how. 21:41
particle_ "learning by criticism" isn't the best model for learning here in #perl6 21:42
KingDillyDilly Will learn how to spell some day...
I'm developing by criticism, not learning. 21:46
theorbtwo I don't think you're doing much of either. 21:50
KingDillyDilly As I said in en.wikipedia.org/wiki/Talk:Perl_6 21:51
I'm providing "Inspired suggestions for tomorrow's Perl. Listen to me, man."
22:00 kd joined
KingDillyDilly You all know I'm Wassercrats, right? Merlyn didn't. 22:04
theorbtwo What's your real name? 22:09
KingDillyDilly Barry 22:11
Feel free to test me.
I'll log into PM if you want. 22:12
Back in 10 min 22:14
theorbtwo No, I don't much care. 22:16
22:24 cmarcelo joined 22:47 coumbes joined 22:48 jsiracusa joined 22:53 cmarcelo left 22:57 Cryptic_K joined 23:00 xinming joined
svnbot6 r10080 | lwall++ | Change ... to ..* 23:08
r10080 | lwall++ | .perl should probably use term ... for infinite list omissions so that the
r10080 | lwall++ | produced string parses, but throws exception if the ... is evaluated.
theorbtwo TimToady: Why does it need to omit infinite lists, rather then dumping the generators? 23:13
TimToady It's doing a string comparison? 23:17
these are in tests that aren't actually run yet...
It looks to me (just from the tests) that .perl takes any list that's "too long" and does its first three elements ... its last three 23:19
theorbtwo Ah.
I was unaware of that. 23:20
TimToady where three becomes one if it happens to be some infinity or other.
theorbtwo ?eval [5..128].perl
23:20 evalbot_10077 is now known as evalbot_10080
evalbot_10080 Can't exec "./pugs": No such file or directory at examples/network/evalbot//evalhelper.p5 line 46. 23:20
TimToady so it was comparing 1, 2, 3 ... Inf
and I just thought it'd be better for that to spit out
1, 2, 3, ..., Inf so it parses.
wolverian why not 1..Inf?
theorbtwo That was what I was wondering. 23:21
TimToady that's what's going into the other end of the test...
wolverian so shouldn't it come out from our end too?
TimToady anyway look at t/data_types/lazy_lists.t and hack away at it if you think it should be different. 23:22
theorbtwo It seems to me that $foo ~~ eval($foo.perl) should generally be true, at least if ~~ is suffiently smart about it.
TimToady I just know that there is no ... infix operator.
perhaps the testing is misusing .perl 23:23
or maybe it's just the default stringification of an infinite list.
I was mostly working on ... => ..* and just noticed that in passing 23:24
PerlJam good evening #perl6 23:25
wolverian feels to me that $foo eq $foo.perl.eval should be true, i.e. [1..Inf].perl should return "[1..Inf]". but I haven't even looked at the test so I might be misunderstanding.
(if that's even possible in all cases.)
TimToady well, currently it doesn't even run them.
PerlJam made it to his destination of hurricane demolished Gulfport MS.
wolverian er, that eq test is really weird too. :) I'll go sleep now, if that's okay with you.
TimToady I'll allow it. 23:26
theorbtwo Goodnight, wolverian.
23:29 stu7 joined 23:31 vel joined 23:48 Khisanth joined