pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
00:14 jjore left 00:22 stevan_ left 00:24 Schwern joined 00:35 jjore joined 00:38 ashleyb_ joined 00:39 stevan_ joined, _sprocket_ left 00:46 ashleyb left 00:50 takanori left, jjore left 00:52 takanori joined
pugs_svn r19582 | lwall++ | [fudge] fudging everything that needs fudging 01:00
01:25 atobey left 01:35 devogon left 01:41 penk left 01:42 penk joined
meppuru good night 01:45
01:50 meppuru left 01:55 thoughtp1lice joined 02:06 thoughtpolice left
pugs_svn r19583 | lwall++ | [fudgeall] depugsify and delinuxify 02:26
02:31 alester joined 02:34 japhb left 02:59 ajs_home joined, ajs_home left 03:02 japhb joined 03:18 jferrero joined 03:19 jferrero left 03:23 thoughtp1lice left 03:24 ashleyb_ left
pugs_svn r19584 | particle++ | [fudgeall] delinuxify 03:31
r19585 | particle++ | [fudge] prettify usage 03:32
03:39 stevan_ left, stevan_ joined 03:46 penk left 03:50 ashleyb joined
pugs_svn r19586 | lwall++ | [t/spec] Some missing colons 04:00
[particle] TimToady: does skip require a block? 04:14
nm, i'm working on it 04:18
04:26 orafu joined
pugs_svn r19587 | particle++ | [fudgeall] windows doesn't seem to want globbing help 04:26
r19588 | particle++ | [t/spec] add skip markers for rakudo 04:36
alester Adriano's articles indexed here: www.perlfoundation.org/perl6/index....roarticles 04:38
lambdabot Title: Perl 6 microarticles / Perl 6, tinyurl.com/2t5546
04:43 OuLouFu left 04:58 lambdabot left
ingy hi [particle] 05:04
[particle] hey ingy
ingy did that meeting ever end? :)
[particle] no, i'm still waiting to do my talk :) 05:05
ingy haha
the 40 minute talks were... well
a little long for a 10 minute talk
[particle] yeah, i think next time we need a gong 05:06
ingy [particle]: did you ever notice that pugs is an anagram of spug? 05:07
[particle] haha, no
ingy P.U.G.S. Perl Users Group, Seattle
I just noticed it myself 05:08
maybe we'll have to start SHUG 05:09
[particle] SHRUGS 05:10
beppu Just out of curiosity, where has audreyt been?
[particle] curiosity killed the cat
ingy I keep her in a jar.
[particle] told ya.
beppu Let her post a blog entry once in a while.
ingy she's been begging me to switch her into a par. 05:11
can't stand that java.
[particle] har 05:12
beppu Are you trying to kill her?
[particle] audrey kept reality in her system tray for a long time, and when she restored it, it consumed all cycles and memory 05:13
ingy She's draws a good crowd in my museum of programming curiosities
Don't worry. I feed her bits and bytes. 05:14
Reality bytes. 05:15
beppu Reality is a funny thing. 05:16
ingy [particle]: we should hang out and hack sometime
[particle] ingy: that'd be cool 05:17
ingy I think after Feb 3rd would be good 05:18
[particle] that's better for me too
i leave for dc in the morning
ingy :)
Auzon pugs: my @test = 1 .. 10; say "sorted!" if [<] @test; 05:20
exp_evalbot OUTPUT[sorted!ā¤]
Auzon pugs: my @test = 1 .. 10, 6; say "sorted!" if [<] @test;
exp_evalbot RESULT[undef]
05:53 BinGOs left
pugs_svn r19589 | particle++ | [fudgeall] ignore previously fudged output files 05:55
06:00 wknight8111 left, BinGOs joined 06:07 BinGOs left 06:10 jjore joined 06:16 lambdabot joined
TimToady [particle]: skip does not require a block 06:20
06:20 DarkWolf84 left
[particle] figured that out, thanks 06:20
ingy hi Tim
TimToady and you can leave out the 1 on the "1 skip"
ingy or do you prefer Mr Toady? 06:21
TimToady if you say 3 skip a block only counts as 1
I prefer "hey you!"
[particle] aha
Auzon Hue?
ingy hi hey you
Auzon :P
TimToady hey me
allbery_b "yo"? 06:22
TimToady a statement counts as starting at a line with "is" et al, and terminating with a line with ; (and optional comment)
pugs_svn r19590 | particle++ | [t/spec] skip some unicode tests for rakudo until we can guarantee folks have icu installed 06:23
TimToady I finally got my pugs smokes working again by skipping the tests that spat out malformed utf-8
we probably need another verb in fudge like "inline" so we can just insert code to call "skip_rest" and such 06:24
allbery_b pugs still losing for me. I'm not sure if it's the darcs ghc or the new cabal, but the package.conf-mangling wrapper for ghc that pugs uses is failing to find any installed packages (like, say, bse) 06:25
er, base
TimToady I made fudged files end with exit(1) so they come out "dubious" despite passing :)
what version of ghc? 06:26
(I use svn so can't help with darcs)
allbery_b 6.9-* from darcs
TimToady yow
allbery_b (the equivalent of cvs/svn HEAD)
TimToady still at 6.6.1 meself 06:27
[particle] TimToady: rakudo is working with fudge now, so it's full steam ahead
TimToady [particle]++
allbery_b guess I'll try to find a 6.6.1 package for ppc then
(have 6.6.0 and recent 6.9s) 06:28
TimToady It's actually quite fun to watch rakudo following in pugs footsteps wrt testing and development
it's a concrete example of the good kind of cross-fertilization
and a sign that we can use our differences as a strength rather than a weakness 06:29
anyhoo, thanks for helping with fudge 06:30
zzz & 06:31
[particle] t\spec\S29-str\ucfirst.rakudo 06:36
Non-zero exit status: 1
lovely of you to create fudge in the first place. all i had to do was complain properly, and there it was!
TimToady you either want to drop the 2 or the block there 06:38
the block only counts as 1 skip 06:39
[particle] i'll fix that up
just good to know it's running the .rakudo files now :)
and giving exit(1)
TimToady probably still need a way to say the following should be multiplied by N for loops and such 06:40
maybe I should force the count on a block to be interpreted that way 06:41
but I still think it's an attribute of the block, not the skip command
[particle] as long as fudge handles the preprocessing, it's all good
TimToady since it's shared by all platforms
[particle] i suppose fudge could look ahead and generate the block count 06:42
TimToady maybe a #?all: scale 5
or some such
I'll think about it overnight.
[particle] i'm sure you'll come up with something. you always do. 06:43
TimToady meanwhile, it really doesn't matter so much if the count gets off
[particle] not for us yet, anyway. i just want to be able to get the files parsing properly
TimToady well, didn't get a nap today, so really need to thunk... 06:44
zzz really &
[particle] enjoy
06:47 jisom joined 06:48 ashleyb left 06:51 lisppaste3 left
pugs_svn r19591 | particle++ | [t/spec] fix some incorrect test markers for rakudo 06:58
07:03 alester left
[particle] TimToady: skip throws off the line count without a block: 07:08
#?rakudo: 2 skip "unicode"
skip(1,"unicode"); # { is(uc("Ɵ"), "SS", "uc() of non-ascii chars may result in two chars");
# }
that extra # } is trouble. probably don't even need # { and # } for single lines 07:09
bed &
07:11 alester joined
pugs_svn r19592 | putter++ | [kp6] Emit/Ruby.pm: a minor bit of transliterating 07:11
07:13 lisppaste3 joined 07:26 iblechbot joined
pugs_svn r19593 | particle++ | [t/spec] rakudo markers 07:32
07:33 alester left 07:50 BinGOs joined 07:57 Auzon left 08:02 Aankhen`` joined 08:17 iblechbot left 08:19 kst joined 08:24 agentzh joined 08:32 meppuru joined 08:34 iblechbot joined 08:40 barney joined 09:12 devogon joined 09:27 jisom left 09:46 barney left 09:58 jjore left 09:59 meppuru is now known as meppl 10:16 ludan joined 10:33 araujo left 10:50 zhuzi joined 10:53 zhuzi left 11:03 nothingmuch joined 11:24 zamolxes left 11:25 chris2 joined 11:45 pjcj_ left 11:53 ruoso joined 12:00 xinming left 12:04 fglock joined
fglock @tell obra re test prioritization, this looks interesting mapstext.unl.edu/public/prioritization/ 12:06
lambdabot Consider it noted.
12:13 lichtkind joined
lichtkind i have problems witz the perl 6 wiki 12:14
fglock how about adding severity/criticality to at least some of the tests? 12:44
12:44 fglock left
integral hmm, this month's MSDN magazine has an article on writing compilers from .NET (the hard way with manually written lexers and parsers :-) 12:52
13:17 ebassi joined 13:51 njbartlett__ joined 13:54 njbartlett_ left 14:07 alester joined, stevan_ left 14:09 stevan_ joined
meppl search.cpan.org/~audreyt/ 14:13
lambdabot Title: &#9787; &#21776;&#40179; &#9786; - search.cpan.org
meppl beautiful picture there
lambdabot, nice try 14:14
14:24 stevan_ left 14:26 alester left 14:36 stevan_ joined, kanru left 14:38 stevan_ left 14:44 jferrero joined 14:45 icwiener joined 14:47 stevan_ joined 14:50 stevan_ left, stevan_ joined 14:58 kanru joined 15:03 soisoisoi joined 15:08 penk joined 15:09 wknight-away joined 15:16 alester joined
pugs_svn r19594 | ruoso++ | [smop] adding a new test before starting to implement the interpreter logic 15:25
ruoso fgl 15:28
oops
15:32 stevan_ left 15:38 __Ace__ joined 15:39 stevan_ joined, stevan_ left 15:40 stevan_ joined 15:43 wknight-away left, NathanE joined 15:53 stevan_ left, stevan_ joined 15:54 stevan_ left, stevan_ joined
pugs_svn r19595 | particle++ | [t/spec] rakudo skip markers 15:56
ruoso I've realised that delaying the gc implementation to the oo system hidden behind the responder interface brought me an unexpected important feature... I can have immortal values that are not subject to gc at all.. 16:00
the constant identifiers are some of them...
TimToady hmm, does that work for native types, I wonder... 16:02
ruoso TimToady, in theory, it can 16:04
because native types cannot have their representation changed 16:05
so we can just assume to know how they are
wolverian www.theonion.com/content/news/earth...ck_to_2147 quite OT, but funny, and I was led here via charles stross's blog, who has a section for perl on his site, so it's not quite completely OT, right..
lambdabot Title: Earthquake Sets Japan Back To 2147 | The Onion - America's Finest News Source, tinyurl.com/yt4egq
16:07 NathanE left, ashleyb joined
ruoso TimToady, you think having some constant ints pre-defined would have any impact? 16:09
like.. everytime you use a 1, you can use the constant 1 value?
16:10 ashleyb left
TimToady well, you need to have a representation of the bits somewhere, and there's little point in duplicating if you don't have a machine code that inlines and forces indirection 16:10
instead
and as long as you keep your readonlyness straight, it works 16:11
ruoso interesting the fact that when I was putting the tags for smop in ohloh and it listed squeak as a related project... 16:12
TimToady, ints are readonly by definition
there's simply no way of "legally" changing its values
TimToady well, it was easy enough to change them in Fortran 16:13
ruoso I mean, the pointer is there, the structure is known, but the API doesn't expose it... 16:14
I mean, not even the typedef is exposed to the public api
it's all design by contract
It's almost void* everywhere... it's SMOP__Object* everywhere... 16:17
hmmm... 16:21
ohloh really thinks smop is related to smalltalk... the two top related-by-tag projects to smop are squeak and smalltalk yx... 16:22
16:26 jhorwitz joined 16:45 netix joined
netix Hi, I know it must be a borring question but, do you know any date about perl 6 release ? On Internet I saw "alpha in the begin of 2007 and maybe a release at next christmas" 16:45
TimToady the Internet is a big place 16:47
icwiener :) 16:48
TimToady it's possible that there are universes in which Perl 6 is done already, and maybe the Internet leaks between universes. 16:50
netix TimToady> like ONE with jet lee ? :)
TimToady sorry, he's rocket lee in that universe 16:51
it's a strange quirk of english that jets aren't rockets, but rockets use jet propulsion 16:52
netix TimToady> anyways, any idea of a period for release ? 16:53
TimToady we'll release as soon as we get up to about 40,000 passing regression tests.
so you'd better get busy :) 16:54
netix lol... thanks for help 16:55
pugs_svn r19596 | ruoso++ | [smop] smop_interpreter.c. The instance that holds the current continuation. Some code done, but now I need to define the capture api 16:56
16:59 DarkWolf84 joined
ruoso TimToady, I know that the capture object is supposed to be used with prefix $, @ and % to get each value, but this seems a little too much overhead for the low-level... 16:59
do you think methods for getting explicitly the named and positional arguments should be part of the spec of the capture object? 17:00
TimToady to the first approximation, a capture is just a list of generators 17:01
some of which are marked as invocant or named, but to begin with they could just live in a list
and the methods could comb them out of the list on demand 17:02
stevan_ this might be of interested to you p6 folks, we just added rudementary support for attribute "traits" in Moose
code2.0beta.co.uk/moose/svn/Moose/t...e_traits.t
lambdabot tinyurl.com/26s276
stevan_ basically it applys a set of roles to an anon-subclass of the attribute metaobject 17:03
which should allow us to immitate some of the crazier p6 bits
ruoso TimToady, I'm not yet dealing with the high-level capture object... I'll use design-by-contract to implement a native capture type that is compatible with the high-level capture, but that can be implemented simpler than the high-level capture object 17:05
the only requirement is that both implements the same API
[particle] farewell &
17:06 [particle] left
ruoso TimToady, for instance, the low-level Capture won't require the values to be inside containers for it to fetch 17:08
as it will make avaiable a method for returning the actual value, instead of a container with the value
TimToady well, $ @ % & are essentially just methods too 17:10
ruoso yeah.. i know...
but they return containers
and that's an overhead I'd like to avoid
as I don't even have the containers yet in the low-level
TimToady I don't see why they have to return containers 17:11
ruoso I mean, I need a capture object to be able to initialize the Scalar prototype, for instance
TimToady they're just context
ruoso doesn't $ returns a Scalar?
TimToady no, it returns an item
and @ returns a list, not an Array 17:12
ruoso isn't item a kind of a simpler container?
like something I call FETCH?
TimToady sure, but 1.STORE fails 17:13
ruoso one way or another 17:14
it is a container...
TimToady only in the sense that everything is an object
ruoso exactly
TimToady and all objects are containers
ruoso hm?
int has a method FETCH? 17:15
that returns itself?
TimToady presumably FETCH would be a noop on a nonScalar item 17:16
ruoso ok... let me see if I got it straight...
TimToady you only need a Scalar when you have an lvalue, not an rvalue
$foo = 42 requires a Scalar on the left 17:17
if you say $foo := 42 then $foo isn't in fact a Scalar anymore
and $foo = 1 will fail after the binding
ruoso so Scalar is not really a class, it's more like a role 17:18
or even, an interface 17:19
an API actually
TimToady just like Array or Hash, but not needing a subscript
17:21 xinming joined
ruoso ok... I need to figure out how that impacts in the capture... 17:22
in the lowlevel, I have methods like
smop_new_capture_for_some_method(SMOP__Object invocant, SMOP__Object thefirstpositional, SMOP__Object thenamedfoo) 17:23
this would create a capture equivalent to
($invocant: $thefirstpositional, :foo($thenamedfoo))
TimToady that's for creating an unbound call? 17:24
ruoso That's what will be put as the parameter to the SMOP_DISPATCH(interpreter, responder, capture) call 17:25
sorry
SMOP_DISPATCH(interpreter, responder, identifier, capture)
that's the deepest low-level thing
TimToady seems reasonable; the syntax is designed so that you can sort out the inf/pos/named at compile time
ruoso Ok... but which method identifiers should I use to fetch the values from the capture object? 17:26
$ would return the invocant
(I'm not doing any bindings in the low-level...
@ would return a list to which I could ask for an item 17:27
TimToady .item .list .hash are the corresponding context methods
ruoso ok...
TimToady (and .slice is a variant of .list)
ruoso the question is... wouldn't it be nice to have a .named(identifier) and a .positional(index) methods? 17:28
to avoid the eventual proxy object?
TimToady well, sure, low-level binding needs to do whatever will be efficient 17:30
ruoso the thing is that I won't even bind in the low-level
all parameters are rw
TimToady and even when binding to *@_ and *%_, those proxies are only the *remaining* args
so shouldn't be confused with @($capture) or %($capture) 17:31
17:32 araujo joined
TimToady you do probably need to be careful that you have a way of preventing eventual assignment to a formal parameter that isn't declared "rw", even if the actual argument is "rw" 17:33
but it's just something to be bear in mind
17:33 qmole_ left
ruoso ok.. but I'm working in deep low-level here.. so in fact they're not really rw... I just don't copy them... 17:34
TimToady that's fine; is how all computers really work anyway... 17:35
well, most of them
there have been computers with fine-grained ro/rw attriubutes 17:36
ruoso but this problem will probably be solved when I implement the Signature
and then I can bind the capture to the signature and that's all
TimToady sounds like you're on the right track 17:37
certainly you want the mechanism to be fast when it can be proven that a formal parameter cannot be written to 17:38
no point in protecting it if there's no threat
if protecting it implies overhead
ruoso ok.. so for the lowest-level calls, I will use .invocant(), .positional(index) and .named(identifier) to fetch the items of the capture 17:39
and I'll have to use a trick to be able to not use a capture to fetch the item from a capture 17:41
which is to pass the value itself as the capture to those methods 17:42
instead of another capture
like...
.invocant(|1) 17:43
.positional(|1)
i mean
but in fact it's something mor
my $a = SMOP__CAPTURE__OPCAPTURE__postional_new($capture, 1); $capture.positional(|$a); 17:44
where $capture.positional would refuse any other object type 17:45
so it probably should be named as something else... 17:48
TimToady have you thought about optimizing multiple dispatch yet? 17:51
ruoso only that one way to do it is to check for known responder interfaces
TimToady, is there any reason for Capture and Signature not being native? 17:55
I mean... it makes things so harder 17:56
TimToady depends on what you mean by native
ruoso by not being possible to change its representation 17:57
TimToady certainly captures and signatures are at the top level just values
it's only by indirection that you get generators or containers
ruoso If I could count on knowing for sure the C structure of a capture (like I can with int) 17:58
it would be much easier
TimToady Signature and Capture are listed as immutable in S02 17:59
ruoso but this doesn't mean that any thing can say true to .does(Capture)
TimToady well, sometimes you have to box values 18:00
ruoso I mean.. I can consider to be illegal for anything else to say true on .does(int)
TimToady and most value types are punning with an identically named role
well, in a sense there is no int type 18:01
the type of int is Int
18:01 meppl left
TimToady but with restrictions on storage 18:01
ruoso I mean... 18:02
I can count on every int to have *my* responder interface
but I can't count on every Int to have the same responder interface
I can have a perl5 and a parrot value claiming to be Int 18:03
TimToady yes, Int is a role that can be mixed into make other RIs
but we can restrict Capture/Signature, or call 'em capture/signature, if we need to 18:04
ruoso pleeeeeeeeeeeease
18:04 meppl joined
ruoso having the possibility of a foreign object to pass parameters is overkill, imho 18:04
i mean, using a sv* as a capture... 18:05
for instance
TimToady you don't have to convince me--I want dispatch to be fast
ruoso so, can I consider the capture and the signature to be "native" in the same sense as "int"? 18:06
TimToady the lowercase ones 18:07
we still might like a Capture role that can mix
ruoso Ok
TimToady for instance, into Match objects
but then you just have to unbox to capture
if you use it that way
ruoso seems perfect. 18:08
and I think that for smop, the capture in SMOP_DISPATCH will always be the lowercase one... the language must unbox it before passing it to the method... 18:09
this way I don't have to unbox everytime...
or at least check if it needs to be unboxed 18:10
wolverian ruoso++ # I don't understand any of this but it is fascinating
ruoso heh
I'm still in the beach trying to pull my boot straps to get out of the water...
TimToady maybe the original boxed Capture goes through the invocant if you don't have one.
maybe not
18:10 chris2 left
TimToady bbl & 18:11
ruoso TimToady, that's the reason for the .^native(type) method, that I've declared in SMOP... 18:13
18:13 ebassi left
ruoso it actually shouldn't be called ^native, because that seems to be a method for the metaclass... 18:14
maybe it can be delegated to the metaclass if the responder doesn't intercept it 18:15
but the expected is that the responder interface intercepts it
18:29 jisom joined
pugs_svn r19597 | ruoso++ | [smop] Now we have the native capture type. This simplifies a *LOT* everything, as I can count on knowing the C structure of the capture in every call. TimToady++ 18:32
18:34 Khisanth left 18:36 Khisanth joined, khisanth_ joined, khisanth_ left 18:37 wknight-away joined 18:41 alester left 18:46 wtgee joined
lichtkind TimToady: are your shure that the reduction syntax [\ ] is optimal? 18:52
ruoso for the record: www.perlfoundation.org/perl6/index....t_sequence documents what will happen in the smop_init() call. 18:56
lambdabot Title: SMOP Boot Sequence / Perl 6
TimToady lichtkind: optimal in which dimension or set of dimensions? 18:59
(it's primarily optmized for the visual dimensionh) 19:00
lichtkind TimToady: honestly the syntax is ugly
TimToady it's an unusual thing to want to do
lichtkind i know weird things should look weird
TimToady and the triangle part of it is kinda pretty 19:01
lichtkind triangle ?
TimToady yes, the left vertical and the backslash suggest a triangle 19:02
[\,] 1..10
1
1,2
1,2,3
1,2,3,4
1,2,3,4,5
almost the same slope even 19:03
ruoso brb &
lichtkind TimToady: triangle numbers i see , i recently know them; since we boost the perl ratings in project euler a bit
TimToady: its about mathematic problems 19:04
TimToady: and during this tasks i many times wished to have perl 6 today
TimToady well, you and me both :)
lichtkind :) 19:05
TimToady: so this won't change ? 19:08
TimToady not likely unless somebody comes up with something spectacularly better 19:09
19:11 meppl left 19:12 meppl joined
lichtkind TimToady: im really tempted 19:12
19:18 gbacon left 19:19 gbacon joined, soisoisoi left 19:34 simcop2387 joined, drrho joined 19:36 kane_ left 19:43 rindolf joined 20:19 alester joined 20:27 jjore joined 20:35 kst left 20:37 gbacon left, gbacon joined 20:38 kst joined 20:39 kst left 20:42 rindolf left 20:45 Aankhen`` left
wolverian hmm. building a nested set of sets of sets ... Set(Set(), Set(1, 2, Set(3, 4, ...))) is okay, I suppose, but I'm wondering if there's a less pythonic way. 20:48
this isn't very relevant, really, since I don't foresee myself doing this in perl6. using maxima for now.. :) 20:49
though I don't like maxima's lack of nice operators
Set.new_recursively(@@(...)) 20:50
%%() almost makes sense here :p 20:51
20:51 kst joined 20:55 xinming left 20:58 drrho left
wolverian as a side note, you can't put a set object inside another set in python 21:01
hm, ah, you can't put _mutable_ sets inside other sets 21:02
that makes sense :) 21:03
21:14 xinming joined 21:17 kst left 21:19 meppl left 21:21 meppl joined 22:00 alester left 22:01 jhorwitz left 22:05 ofer left 22:12 Schwern left, Schwern joined 22:18 lodin joined, lodin is now known as lodin0 22:22 icwiener left 22:28 alester joined 22:35 iblechbot left 22:39 macroron joined 22:43 alester left 22:46 Auzon joined 22:50 jferrero left 23:01 IllvilJa left 23:18 justatheory joined
meppl good night 23:35
23:37 macroron left 23:40 meppl left 23:56 netix left