Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-02-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 mncharity joined #perl6
00:20 PerlJam joined #perl6
00:20 Auzon joined #perl6
00:31 pugs_svn r19835 | lwall++ | [STD] first attempt at hacking in item/list assignment distinction
00:35 alester joined #perl6
00:35 devogon_ joined #perl6
00:45 ilogger2 joined #perl6
00:58 nothingmuch http://video.google.com/videoplay?docid=-8860158196198824415
00:58 nothingmuch i think anarchaia++ for that ref but even if no anarchaia++
01:07 lambdabot joined #perl6
01:30 mncharity nothingmuch: saw him give the talk at Tufts in boston.  the part which wasn't "sloooooowwwwlyyyy explaining lisp" was fun.  talked to him afterward, trying to see if he had any insights which might apply to p6 and its mutability
01:30 lambdabot mncharity: You have 5 new messages. '/msg lambdabot @messages' to read them.
01:30 mncharity (give his work on fortress), but I didn't get much.
01:32 meppl joined #perl6
01:35 mncharity s/the talk/a talk similarly titled/  #haven't looked at the vid yet
02:04 nothingmuch mncharity: this talk is fairly old, 1998
02:04 nothingmuch it targets java and all
02:05 nothingmuch but that's like maybe 2% of the actual meaningful content =)
02:05 nothingmuch "how to fix java" is not a problem many of us care about deeply ;-)
02:14 mncharity but "java didn't get continuations because at one meeting it got put off due to deadline pressure, and was never gotten back to"(my fuzzy recollection), seems a cautionary tale for us all.  though less so given p6's nature. :)
02:24 mncharity ok, here's a strawman idea prompted by recent comments.  STD doesn't actually do all that much backtracking.  It however has lots of code.
02:26 mncharity I'm interested in transliterating STD into some existing language (ruby or p5), with the objective of getting a useably fast and non-buggy p6 parser.  To shake down STD, and perhaps be the front-end for a full p6 bootstrap.
02:27 mncharity I _had_ been thinking of transliterating STD to use Pugs::Compile::Rule (in cpan) or yet_another_regex_engine (almost certainly faster) or a new ruby version of y_a_r_e (hypothetically fast and pretty).
02:28 mncharity Ie, get a regexp engine, and then fight to make the code work.
02:28 mncharity But how about going in the other direction.
02:29 mncharity Write the code, and then fight to get backtracking in the few places you need it.  Eg, using exceptions.
02:30 mncharity I'm not a great believer in the whole "let's avoid backtracking" ratchet school of thought.  But, since STD does, maybe we should/could leverage that here...
02:32 mncharity Specifically, transliterate STD to ruby or p5 _code_, built on a simple scanner (StringScanner in ruby), and using exceptions to backtrack.  Only use the native regexp engine, and that only for low level lexing.
02:32 CoreEvil joined #perl6
02:32 mncharity thoughts?
02:35 mncharity nothingmuch: re talk is fairly old, I wonder if there's a more recent version about.  or some fortress talks.  some of it/them have applicability to p6, given fortresses on odd take on syntactic flexibility.
02:36 mncharity "it's not enough to merely do unicode, we need to do unicode with face information!  we need a bold-italic-sansserif-smiley-face!"
02:37 mncharity (tongue in cheek p6+fortress hybrid cheer)
02:38 mncharity I suppose a serif smiley would be more interesting.
02:39 Auzon You remind me of the latest xkcd comic :)
02:41 * mncharity looks...
02:41 pugs_svn r19836 | putter++ | src/perl6/STD_extract: now dumps to a report directory.  more analysis available - all buggy.
02:44 mncharity ok, even with dictionary assist, don't get it.  but I see the smiley... :/
02:44 Auzon The Basilisk sends a smiley and kills the guy on the other end (since they have the stare that kills in fictional works)
02:45 mncharity http://xkcd.com/378/  LOL
02:45 lambdabot Title: xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe
02:46 mncharity ahhhhhh!  thank you. :)
02:46 Auzon Quite a few mention Perl in amusing ways.
02:46 Auzon well, <10, but still
02:48 thoughtpolice joined #perl6
02:49 mncharity what fun.  :)  back to work.
03:02 mncharity now _really_ back to work.  sigh.  xkcd!@#$%!@! :)
03:03 Auzon Heh. xkcd is a great comic to watch daily updates on. But it's addicting if you get into the archives :)
03:08 mncharity indeed. :/
03:13 * mncharity wonders what the state of "longest token match" is... goes to read snn
03:18 mncharity oky, ruby it is, let's see... snack.  bbl. &
03:18 drbean_ joined #perl6
03:41 REPLeffect joined #perl6
04:22 Neophytos joined #perl6
05:27 araujo joined #perl6
05:32 mncharity slog, slog.  ltr &
05:35 REPLeffect joined #perl6
05:43 devogon joined #perl6
05:59 spinclad pugs: my Foo is ro @x[5];  # ??  would be useful: content is ro, container is rw.
05:59 exp_evalbot OUTPUT[*** ␤    Unexpected "is"␤    expecting ":" or "("␤    at /tmp/cZj2jq8Qtp line 1, column 8␤]
05:59 spinclad pugs: my Foo @x[5] is ro;  # content is ??, container is ro.
05:59 exp_evalbot OUTPUT[*** ␤    Unexpected "is"␤    expecting operator␤    at /tmp/eipaJpT1hE line 1, column 14␤]
06:00 spinclad looks like ENOTRAITS
06:05 po_boy joined #perl6
06:10 peeps[work] joined #perl6
06:13 IllvilJa joined #perl6
06:26 justatheory joined #perl6
06:46 pugs_svn r19837 | putter++ | misc/red_STD: a first, very crude start, at a ruby-based attempt, to get STD.pm easily runnable.
06:47 iblechbot joined #perl6
06:55 kanru joined #perl6
07:21 psapo joined #perl6
07:40 vel joined #perl6
07:41 vel joined #perl6
07:45 Aankhen`` joined #perl6
08:11 cosimo joined #perl6
08:35 pmccann joined #perl6
08:40 kane_ joined #perl6
09:09 devogon joined #perl6
09:29 kanru joined #perl6
09:49 iblechbot joined #perl6
09:53 ebassi joined #perl6
09:54 IllvilJa left #perl6
10:05 viklund joined #perl6
10:23 fridim_ joined #perl6
10:42 drrho joined #perl6
10:49 blindfish joined #perl6
11:23 * ruoso considering using .^^method as a the way SMOP identify Representation calls... It's not supposed to be standard Perl 6...
11:24 * ruoso wonders if that is a good idea
11:36 agentzh joined #perl6
11:37 ruoso [particle], how hard would it be to mess with the parrot runloop?
12:02 pbuetow joined #perl6
12:03 meppl joined #perl6
12:04 zamolxes joined #perl6
12:08 ruoso hmmm... when resolving private storage of an object, how can a code know to which class it belongs? I mean, how to know which private slots are available to it?
12:09 ruoso does a closure lately registered as a method of some class have access to the private members?
12:09 ruoso or is that tied to the package?
12:11 moritz_ I'd expect a closure to have access to the same members as the method wherein it is defined
12:11 ruoso hmm S12 seems to imply that "(Private accessors are never virtual, and must be package qualified if called from a trusted scope other than our own. That is, it's either self!attr() or $obj!TrustsMe::attr().)"
12:15 ruoso if it's tied to the package, we can always have caller.package to resolve private storage
12:15 zamolxes_ joined #perl6
12:25 zamolxes joined #perl6
12:27 chris2 joined #perl6
12:35 zamolxes_ joined #perl6
12:42 moritz_ is there a common notion of what associatiy the power operator ** has?
12:42 moritz_ if I read a**b**c I don't know what is meant
12:42 moritz_ it might be a good idea to forbid chained power ops without explict parenthesis
12:43 cmarcelo joined #perl6
12:45 ruoso moritz_, in theory that resolves as the precedence of infix:<**>
12:46 ruoso infix:<**> will get first a**b, than **c
12:46 ruoso which means that, in theory a**b**c means (a**b)**c
12:46 moritz_ so it's left assoc
12:46 moritz_ ok
12:47 ruoso at least that would be what I would expect
12:47 ruoso I'm not sure about i
12:48 moritz_ you see? that's why i'd like to forbid it
12:49 ruoso well... it only needs to be documented...
12:49 ruoso just like a * b * c
12:50 ruoso if any of those implement an overload, the invocation order may make a difference
12:50 moritz_ ok, good point
13:08 monomorph joined #perl6
13:16 ruoso I think I have the first sketch for the Representation API
13:16 ruoso http://www.perlfoundation.org/perl6/index.cgi?smop_oo_api
13:16 lambdabot Title: SMOP OO API / Perl 6
13:18 jferrero joined #perl6
14:00 ruoso I think CREATE and BUILDALL are not submethods... they are regular methods, aren't they?
14:00 ruoso BUILD on the other hand is a submethod...
14:02 ruoso I mean, if one can call $class.CREATE(), it should be able to inherit that from Object
14:03 wolverian moritz_, it's right assoc in perl5, and it's kind of natural if you think about the mathematical notation
14:11 wknight8111 joined #perl6
14:16 * ruoso starting to write Object.pm to realize what else is needed in the WHO and REPR API
14:28 marmic joined #perl6
15:01 alester joined #perl6
15:03 mattz_ joined #perl6
15:16 rindolf joined #perl6
15:21 mattz_ joined #perl6
15:23 TJCRI joined #perl6
15:38 njbartlett joined #perl6
15:53 turrepurre joined #perl6
16:00 pugs_svn r19838 | ruoso++ | [smop] src-s1p/Object.pm -- This is the first implementation of the Perl 6 Object in SMOP... This is already written in Perl 6. At some time, it will be translated to C+sm0p, and consequently, to C.
16:00 ruoso I realised that the best way of discovering the OO API is to implement the base library
16:11 turrepurre joined #perl6
16:17 aindilis joined #perl6
16:21 Psyche^ joined #perl6
16:51 peeps[work] joined #perl6
16:53 justatheory joined #perl6
16:54 pugs_svn r19839 | particle++ | typo fix
17:16 fridim_ joined #perl6
17:19 spinclad moritz_, ruoso:  ** associates to the right:  a**b**c is a**(b**c), since (a**b)**c can be simplified to a**(b*c).  see S06:1761 and S03:3325 (but the synopses do not have a full table of associativities it seems).
17:20 pugs_svn r19840 | particle++ | [s1p] one more typo
17:21 * spinclad redundantly agrees with wolverian++
17:22 pugs_svn r19841 | ruoso++ | [smop] Clone is a method in Object that immediatly delegates to the representation
17:22 [particle] i think that associativity part of the synopses is still 'same as perl 5 unless otherwise noted'
17:23 ruoso I'm starting to wonder if Object -> HOW -> REPR should be mandatory...
17:23 ruoso I think it is ok to use Object -> REPR directly when neede
17:24 ruoso as in method clone { self.^^clone }
17:24 [particle] wait... is .^^foo valid? i can't find it in the synopses
17:24 ruoso it's smop-specific
17:24 [particle] ah!
17:24 [particle] ok, i'll have to revert
17:25 ruoso it's how the Representation is called
17:25 zamolxes joined #perl6
17:25 ruoso but I'm not still quite sure about the boundaries
17:25 pugs_svn r19842 | particle++ | [smop] revert what i thought was a typo but is actually smop-specific syntax
17:26 ruoso maybe I should consider it simply as HOW call...
17:27 pugs_svn r19843 | rhr++ | [s1p] typo
17:27 spinclad same 'typo'?
17:28 rhr_ different one :)
17:28 ruoso [particle], what do you think about the HOW x REPR thing?
17:28 ruoso I'm unsure if there's a need for a REPR at all...
17:28 [particle] ruoso: looking at this code reminded me that i need to implement prefix:<|> in rakudo
17:29 [particle] ruoso: i'm just diving in now, so i'm not sure what i think yet :)
17:29 DarK-ZeRo joined #perl6
17:29 DarK-ZeRo left #perl6
17:29 ruoso did you see the wiki (smop_oo_api)
17:30 ruoso what makes me wonder about having a separated API for the representation is the fact that HOW deals with inheritance
17:31 ruoso while REPR manipulates *only* the given object, not trying to resolve inheritance... therefore that's how HOW gets implemented
17:32 * ruoso . o O ( it would be really nice if more people take over and start to write the other built-in types in smop/src-s1p )
17:33 wolverian is smop in pugs repo?
17:33 ruoso pugs/v6/
17:33 wolverian thanks
17:36 * ruoso . o O ( it's nice to realise that the code in src/s1p can actually be translated to C+sm0p... it makes me wonder if it will be possible to have Roles implemented as standard os shared libraries )
17:37 fax joined #perl6
17:38 ruoso again on the REPR x HOW thing... on the other hand, everything that is in REPR is supposed to be declared as a submethod, with means no inheritance at all, so it might be possible to make everything part of the HOW API
17:39 manfred joined #perl6
17:40 ruoso but the additional ^ makes it clear that it will only operate in the current object, such as that ^^methods and ^methods are different things...
17:42 pugs_svn r19844 | wolverian++ | yap6 -> smop in v6/README, spacing fixes
17:42 wolverian hm, I think git-svn is working :)
17:43 [particle] ruoso: but you can't distinguish a submethod from a method by call syntax, can you?
17:43 aindilis joined #perl6
17:43 [particle] (in std perl 6)
17:43 moritz_ you can't
17:43 ruoso nope...
17:44 ruoso so it's probably a good idea to make them really different from each other...
17:44 [particle] "them"?
17:44 ruoso HOW x REPR
17:44 ruoso ^methods x ^^methods
17:45 ruoso where the first gets all methods (recursing to the parent classes), and ^^methods gets only the methods defined by this class
17:45 [particle] i can argue that metamethod calling should look the same as regular method calling
17:45 [particle] that is, that submethod and method calls are indistinguishable by call syntax
17:46 [particle] however, i can see your point, too.
17:46 ruoso I could probably just use different enough names to make the difference
17:46 [particle] but i don't like the inconsistency that metamethods get different syntax, and regular method/submethods don't
17:47 pugs_svn r19845 | wolverian++ | Remove superfluous =back from Object.pm
17:47 [particle] btw perl 6 code with perl 5 pod is *ugly*
17:47 wolverian I think that was all the really low-hanging fruit...
17:47 * ruoso still didn't update to the new pod
17:47 ruoso :P
17:48 [particle] well, we need a perl 6 pod parser first
17:48 [particle] i've taken one small step in that direction
17:48 wolverian erm, I remember one...
17:48 [particle] i'd *love* to see that grammar extended
17:48 wolverian but was that uploaded to cpan
17:48 wolverian s/$/?/
17:48 * moritz_ still waits for TheDamian to comment more on the new POD
17:48 [particle] ah, right, damianc's perl6::perldoc
17:49 wolverian yup
17:49 [particle] moritz_: i've grown tired of wating
17:49 [particle] i want something that works, even if it needs to be reengineered later
17:49 PerlJam moritz_: I bet TheDamian is waiting for more people to implement/use it.
17:49 wolverian doesn't Perl6::Perldoc work?
17:49 moritz_ [particle]: me too - that's why I use something else for my syntax explainer
17:49 ruoso [particle], re: method x submethod ... there is some reason in S12 for the calling convention to be the same for both method and submethod
17:50 moritz_ wolverian: it does, but there were longish threads on p6l whether it's a good aproach
17:50 [particle] ruoso: can that reason be applied to meta* ?
17:50 moritz_ and I feel guilty for setting it off
17:50 wolverian moritz_, oh, the POD spec itself? I remember that thread. :)
17:50 moritz_ wolverian: yeah, that
17:50 ruoso [particle], nope...
17:51 moritz_ basic problem is that in p6 the signature of a sub/method is so expressive that it should appear in the POD
17:51 wolverian ruoso, it'd be easier if I had some kind of a template for new types in s1p
17:51 ruoso meta* is different simply because it's not supposed to be a method of the object
17:51 moritz_ but there's no way for code to be in POD and "real" code at the same time
17:51 wolverian though I suspect I'm just lazy and I should read the spec
17:51 moritz_ so you have to duplicate it - d'oh
17:51 ruoso wolverian, s1p is supposed to be Perl 6 compatible
17:51 ruoso in theory, the next step would be to take some direct descendant of Object and implement it
17:52 wolverian ah. where's the inheritance tree?
17:53 wolverian hm. didn't larry say there is no Undef type? I see one in S02
17:53 devogon joined #perl6
17:55 ruoso wolverian, S02 should probably give a clue on the direct Object descendents...
17:55 wolverian thanks :)
17:55 wolverian those are all scary though
17:56 [particle] wolverian: look in v6/v6-KindaPerl6/ for some prior art
17:57 [particle] ruoso: larry will rule one way or the other on the syntax, but i think what you have makes intent clear, and if it works for you, keep it up
17:58 ruoso [particle], I see... but I should probably change "^^" to "^somethingelse" because ^^ might be confusing...
17:58 ruoso I don't know...
17:59 wolverian heh, KindaPerl6/Runtime/Perl6/Int.pm is .. brief :)
18:00 ruoso maybe ^! to imply some privacy
18:00 ruoso ^!methods
18:01 * [particle] looks up current method call syntax
18:03 [particle] private methods are inherited, right?
18:03 ruoso no
18:03 ruoso private methods are really private
18:03 ruoso only seen inside the same package
18:03 [particle] ok, so then i like .^!
18:03 moritz_ is there something like "protected" methods in C++?
18:03 moritz_ i.e. private but inherited?
18:04 ruoso moritz_, I don't think so...
18:05 moritz_ perl.org not responding...
18:05 pugs_svn r19846 | ruoso++ | [smop] s/^^/^!/g
18:05 namelessuser left #perl6
18:06 moritz_ ah, works again
18:06 ruoso I've also just realised that I don't need to make lame interfaces like "isa_count" and "isa_at"
18:06 ruoso I can return optimized objects that implement the List API
18:06 ruoso and it will just work
18:07 * ruoso owes a beer to nothingmuch for the zen lessons...
18:08 wolverian hm, what'll compile this code?
18:08 ruoso s1p
18:09 ruoso that will turn it into C+sm0p
18:09 ruoso and sm0p will turn it into plain C
18:11 justatheory joined #perl6
18:11 [particle] sm0p being a macro preprocessor
18:11 ruoso yep
18:13 ruoso the pretty thing about it is that we will be writing thing in Perl 6 not because we want to look good in the picture, but because it would be completely impossible to maintain it if written in C, given the Stackless and the Dispatching nature of smop
18:13 [particle] so the highest level of smop accepts, what, ast?
18:13 ruoso smop is not yet a compiler...
18:13 ruoso it have a runloop...
18:14 [particle] yes, it's just a vm now
18:14 ruoso some time in the future
18:14 wolverian I'm not sure how one would implement e.g. List on this level
18:14 ruoso Method will keep a reference to the AST and interpret it
18:15 [particle] ok, what's the state of kp6 on smop?
18:15 ruoso kp6 is used to run the sm0p grammar
18:15 * wolverian looks at kp6/Perl6's List
18:15 [particle] wolverian: try Bool first
18:16 [particle] oh, wait, does smop have bool already?
18:16 ruoso yep
18:16 [particle] ok, and in.t
18:16 ruoso yeah... native int also
18:16 ruoso implementing the other native types is not tricky at all...
18:17 [particle] native types seems like a good place to start extending
18:17 wolverian yeah, but it's C :)
18:17 ruoso every Perl programmer knows how to program C
18:17 [particle] for(;;;) {}
18:17 ruoso it might now know he knows
18:18 [particle] oops, i got carried away with ;
18:18 fax ;;; O_O
18:18 wolverian well, I suppose native_uint.c shouldn't be too hard...
18:18 ruoso not at all
18:18 ruoso in fact, it's probably the easier one
18:18 ruoso considering int is there already
18:18 wolverian yeah, doing it now
18:19 [particle] then it's not far till you have int2 int4 int8 int16 :)
18:19 wolverian S02 doesn't actually define those
18:19 [particle] (but what does that get you, speaking practically)
18:19 [particle] look in s09
18:20 [particle] http://perlcabal.org/syn/S09.html#Sized_types
18:20 lambdabot Title: S09
18:20 ruoso hmm
18:20 ruoso in fact...
18:21 wolverian well, damn :)
18:21 wolverian maybe this should be parametrised..
18:22 ruoso wolverian, it doesn't need to...
18:22 ruoso int is what the architecture says
18:22 ruoso but you still have the others
18:22 ruoso and in fact...
18:23 ruoso my int @nums; is a nice way of implementing List btw
18:24 ruoso in fact... my Object @nums is also subject to "compact storage" implementation, isn't it?
18:25 wolverian why's test/07_int.c not native_int?
18:25 ruoso in fact... there's no reason for using the same representation of the class Array in "my @foo" ...
18:25 wolverian (.c)
18:25 [particle] i'm not sure, because Object isn't a low-level type
18:25 ruoso wolverian, no reason at all... feel free to rename it... just remeber of doing so in Makefile.am too
18:25 wolverian yup.
18:26 ruoso but @foo just need to keep track of a list of pointers (lowlevel-speaking)
18:26 ruoso if it implements the Array API
18:26 [particle] true
18:26 ruoso you can use it as if it were an API
18:26 ruoso s/an API/an Array/
18:26 ruoso thanks to the responder interface model :)
18:27 [particle] 's kinda like is Aggregate does Array
18:27 ruoso yep...
18:27 ruoso everything is Design by Contract
18:27 wolverian do I need to add native_uint.c to somewhere besides Makefile?
18:27 [particle] eiffel, anyone?
18:27 rindolf joined #perl6
18:27 ruoso wolverian, I don't think so
18:28 wolverian I did copy the int test :)
18:28 wolverian one can think of how to test it later
18:28 wolverian ruoso, not smop.h?
18:28 wolverian since the test includes it
18:28 ruoso smop_native.h already have uint (i think)
18:28 ruoso you probably need to add it to the "Boot sequence"
18:29 ruoso in src/smop_internal.h
18:29 njbartlett joined #perl6
18:29 wolverian where's smop_native.h?
18:29 ruoso [particle], the great jump is that an Array is simply anything that anwers true to "$foo.does(Array)"
18:29 ruoso wolverian, include/
18:30 ruoso include is the "public API"
18:30 wolverian oh, I searched for *native*.c
18:30 ruoso [particle], and that's the point on you not being able to change the native object's representation...
18:30 wolverian :)
18:31 Jamtech joined #perl6
18:32 justatheory_ joined #perl6
18:32 [particle] well, sometimes you do want $foo.isa(Array) rather than .does
18:33 ruoso ~~ uses .does
18:33 [particle] my primary use case (top of my head) is emulating p5
18:33 [particle] duck-typing.
18:33 ruoso ah... but anyway.. the .does includes anything in .isa
18:34 ruoso .does is a question to the object
18:34 wolverian testing it :)
18:35 [particle] ruoso: true.
18:35 [particle] i really like the idea of role-based composition, and i can't wait to try it out
18:35 [particle] it's so... liberating.
18:36 ruoso heh...
18:36 wolverian well, you could use Moose :)
18:36 ruoso one thing that is intriguing me is the idea of using shared libraries (.so | .dll) as Roles
18:36 [particle] yes, i've used moose for small stuff. love it.
18:36 [particle] ruoso: a single role, or a collection?
18:37 ruoso [particle], depending on the library, of course...
18:37 [particle] right.
18:37 ruoso like being able to say...
18:37 [particle] link in librsingleton.so
18:38 ruoso and also to use them as classes as well..
18:39 ruoso in fact, the standard Perl 6 library will be a shared object in smop
18:39 [particle] i'm a little scared about using a Class as a Role
18:39 njbartlett joined #perl6
18:39 [particle] ruoso: that should make pcre easy :)
18:40 ruoso indeed... the only problem is pcre unicode support
18:40 ruoso which I don't think to be any close to what P6 regex need
18:40 ruoso like :b and :bb
18:41 [particle] there's still a lot to work out wrt unicode support
18:41 [particle] for implementations, that is.
18:42 ruoso maybe create a cooperative fork of pcre supporting more unicode (considering it can't be merged upstream)
18:43 njbartlett joined #perl6
18:46 justatheory joined #perl6
18:46 ruoso wolverian, so... did it work?
18:47 wolverian oh, testing.. I hadn't added it to test/Makefile.am first
18:49 wolverian mm, colormake...
18:49 ruoso colormake?
18:49 justatheory joined #perl6
18:49 jferrero joined #perl6
18:50 wolverian colorises make output to make it easier to digest
18:50 ruoso hmm
18:50 ruoso cool
18:50 wolverian also colorgcc
18:50 wolverian and colormake-short, which additionally shortens every line to terminal width
18:51 wolverian er.. running the tests manually worked, except it segfaulted at the end...
18:51 wolverian hmm
18:51 wolverian yeah that's not supposed to happen
18:52 ruoso a segfault in the end is a bad thing
18:52 ruoso which one segfaulted
18:52 nothingmuch ruoso: see the lecture I pasted, too
18:52 ruoso nothingmuch, where?
18:52 nothingmuch you'll owe guy steele a keg if you already owe me a beer
18:52 wolverian uint.t
18:52 wolverian mine :)
18:52 * wolverian looks over the code
18:52 nothingmuch ruoso: http://tumblr.woobling.org/post/25792433
18:52 lambdabot Title: nothingmuch's link dump
18:52 nothingmuch err, oops
18:53 nothingmuch copied the URL too early
18:53 nothingmuch it'll still lead you there
18:54 ruoso ah... the java lecture... yeah... I saw it
18:54 ruoso almost completely
18:54 ruoso ok... mostly the first half... then picking small pieces
18:55 ruoso nothingmuch, any specific part you'd like me to pay special attention ?
18:55 nothingmuch the second half is where the good stuff is
18:55 nothingmuch no, just the general philosophy
18:55 ruoso oh crap...
18:55 ruoso :)
18:55 nothingmuch you probably know it, already
18:55 nothingmuch but he's very articulate
18:55 nothingmuch and gets the point accross beautifully
18:55 nothingmuch and furthermore I agree with the point ;-)
18:55 nothingmuch anyway, back to friends
18:56 ruoso hmm... google video doesn't support seek
18:59 wolverian ah, I messed up smop_internal.h
18:59 ruoso yeah... I know using macro there might not be a good idea... :) it's too easy to forget the \
19:03 chris2 joined #perl6
19:04 * wolverian scratches head
19:04 ruoso wolverian, commit it and than I take a look
19:06 wolverian oh
19:06 wolverian do I need to add it to smop_lowlevel.c?
19:06 ruoso nope
19:06 wolverian refcnt_dec?
19:06 wolverian it checks for __int explicitly
19:07 ruoso does it?
19:07 wolverian see line 195
19:08 * wolverian adds it and rebuilds
19:08 ruoso oh...
19:08 ruoso I see...
19:08 ruoso I need to document that...
19:08 wolverian :)
19:08 ruoso that is one of the bootstrap shortcuts
19:08 wolverian I figured it was something like that, yeah
19:09 ruoso it avoids normal destruction for known objects
19:09 wolverian ...when I found it, after 10 minutes of acking
19:09 wolverian yeah, makes sense
19:09 wolverian ok, works now
19:09 wolverian (tests
19:09 wolverian )
19:09 ruoso :)
19:10 ruoso wolverian, I'm going home now... could you please add that as a note to the SMOP Hacking page in the wiki?
19:10 ruoso besides adding the change in the changelog and your name in smop/AUTHORS ?
19:10 ruoso :)
19:11 wolverian add it in changelog?! madness!
19:11 wolverian sure :)
19:11 pugs_svn r19847 | wolverian++ | [smop] add native_uint and move native_int's test
19:11 * ruoso by changelog I mean the wiki's changelog :)
19:11 wolverian sorry that was a single commit, I forgot to pick those apart..
19:12 ruoso no problem at all
19:12 wolverian thanks for guiding me through it
19:12 ruoso :)
19:12 ruoso now you can implement other native types :
19:12 ruoso :)
19:13 wolverian oh, wait
19:13 wolverian I can't edit the wiki
19:13 wolverian the JS editor doesn't workforme
19:13 wolverian I use ubuntu hardy, so I'm using gecko1.9-based browsers. I think it's broken on those. :(
19:13 ruoso you can use the "simple" version
19:13 ruoso which is not JS
19:13 wolverian oh, thanks
19:14 wolverian where's that?
19:14 ruoso in the top of the edit page
19:14 wolverian I don't see it
19:15 wolverian "Loading editor..." :)
19:15 ruoso outside the editor
19:15 wolverian nope, sorry. hmm.
19:15 [particle] [save] [preview] [cancel] <simple> advanced <edit tips>
19:15 wolverian don't see those.
19:16 ruoso advanced...
19:16 ruoso simple is the JS editor, surprisingly
19:16 wolverian ...righto.. well, I can't get to either
19:16 wolverian if the link to advanced is in the JS editor
19:16 wolverian is there a direct url I can use to get to the advanced editor?
19:17 ruoso can you go to the settings?
19:17 wolverian yes
19:17 [particle] i don't see anything in settings that will help :(
19:17 ruoso yeah...
19:17 wolverian yeah I looked there first
19:17 ruoso I had just noticed that...
19:18 wolverian I'm a bit annoyed at this wiki now.. :)
19:18 [particle] you'll need to contact socialtext
19:18 [particle] yeah.
19:19 * ruoso going home &
19:19 wolverian I can edit it via email, I guess...
19:19 * ruoso will backlog, as usual...
19:20 buchetc joined #perl6
19:24 Schwern joined #perl6
19:28 simcop2387 joined #perl6
19:28 obra win 95
19:29 Tene ETOOMANYCHANNELS
19:32 smtms joined #perl6
19:39 wolverian for once I agree
19:44 pugs_svn r19848 | wolverian++ | [smop] Add myself to AUTHORS
20:00 agentzh left #perl6
20:04 [particle] id' like to build smop. can anybody help me with using autotools?
20:05 moritz_ which OS?
20:05 [particle] ubuntu
20:06 moritz_ should be straight forward
20:06 moritz_ make -f Makefile.cvs
20:06 moritz_ ./configure
20:06 moritz_ make
20:07 [particle] i get error cunning make
20:07 [particle] Libtool library used but `LIBTOOL' is undefinde
20:07 wolverian worksforme. do you have libtool?
20:07 [particle] iunno
20:07 wolverian sudo apt-get install libtool
20:08 [particle] already typing :)
20:08 wolverian :)
20:08 [particle] why is it called Makefile.cvs?
20:09 moritz_ histerical reasons
20:09 moritz_ s/e/o/ # ;-)
20:09 [particle] figured.
20:09 [particle] ok, looks like make succeeded! thanks.
20:09 [particle] moritz_++ wolverian++
20:10 wolverian yay
20:10 wolverian now *you* can add the rest of the native types
20:10 wolverian and I can sleep :)
20:10 [particle] oh, is that how it works?
20:10 ruoso joined #perl6
20:10 moritz_ lol
20:11 [particle] i'm getting failures on test/08_native_uint.t
20:11 wolverian noooo
20:11 [particle] failed before any test output arrived
20:11 wolverian :(
20:11 [particle] NO SLEEP FOR YOU!
20:12 wolverian dammit
20:14 [particle] how do i gdb it?
20:14 wolverian that's a good question
20:14 wolverian I have no idea :)
20:15 ruoso [particle], that's a tricky thing, thanks to libtool
20:15 wolverian oh, great, now it segfaults here too
20:15 wolverian again
20:15 ruoso LD_LIBRARY_PATH=src/.libs/ gdb test/.libs/01_smop_lowlevel.t
20:16 ruoso but you need to do
20:16 ruoso CFLAGS='-O0 -g3' ./configure make clean check
20:16 ruoso before
20:16 wolverian oh
20:16 [particle] ruoso: how about a smop debugging page
20:16 wolverian I didn't commit the smop_lowlevel.c change apparently
20:16 wolverian damn
20:16 ruoso [particle], seems like perfect
20:18 wolverian uh, wtf..
20:18 wolverian git says it's not tracking that file
20:18 * wolverian scratches head
20:19 wolverian oh..
20:20 ruoso you probably changed the C file
20:20 wolverian is smop_lowlevel.c generated at make?
20:20 ruoso tes
20:20 ruoso yes
20:20 wolverian make distclean didn't remove it
20:20 ruoso from smop_lowlevel.sm0p
20:20 ruoso I still have to figure out why
20:20 wolverian okay, adding it to the correct file ;)
20:20 wolverian thanks
20:24 wolverian done, running test and uploading
20:24 DarkWolf84 joined #perl6
20:25 wolverian awww it still doesn't work
20:25 wolverian what'd I mess up
20:25 wolverian hmm
20:26 wolverian oops :)
20:28 wolverian works
20:28 ruoso http://www.perlfoundation.org/perl6/index.cgi?smop_debugging
20:28 lambdabot Title: SMOP Debugging / Perl 6
20:28 wolverian ruoso++
20:28 pugs_svn r19849 | wolverian++ | [smop] add uint to smop_lowlevel
20:29 [particle] ruoso++ ruoso++ ruoso++ # your documentation ROCKS!
20:29 ruoso :)
20:29 wolverian libtool is rather strange
20:30 [particle] wolverian++ # All tests successful
20:30 wolverian yay
20:30 ruoso I know, but building libraries may be tricky... libtool makes it very easy
20:30 wolverian yeah.
20:32 ruoso Test::Harness++
20:33 ruoso I just love the fact that I can write tests in whatever just printing the TAP
20:34 ruoso wolverian, hmm... it wasn't supposed to segfault if that line wasn't in smop_lowlevel
20:35 ruoso maybe you just reproduced a bug I've been trying to isolate
20:35 wolverian that's possible
20:35 wolverian do you want a gdb trace?
20:35 wolverian actually I have to sleep now :( I can get you that tomorrow
20:35 ruoso I can take the gdb trace here... thanks anyway...
20:35 ruoso wolverian++
20:36 wolverian you're welcome :)
20:38 pmurias joined #perl6
20:39 ruoso debugging a stackless interpreter is not very funny...
20:39 ruoso I need to implement a real debugger to smop in a very near future
20:39 wolverian can gdb step back?
20:40 thoughtpolice joined #perl6
20:40 ruoso wolverian, nope
20:41 jferrero joined #perl6
20:41 wolverian ewwwww
20:41 wolverian okay sleep &
20:41 ruoso seeya
20:57 pugs_svn r19850 | ruoso++ | [smop] bug reproduced by wolverian++ fixed. When destroying an object using the prototype interpreter instance (which is stackfull), do not try to use the stackless object destruction.
21:00 ruoso and now destroying an interpreter instance using the prototype interpreter instance works just fine...
21:01 ruoso even if that interpreter instance still holds a reference to a continuation that holds references to other objects...
21:02 * ruoso . o O ( smop uses 5kbytes of memory in total for start and shutdown at the moment )
21:03 * ruoso . o O ( but the standard library is not still initialized )
21:03 ruoso later &
21:04 [particle] keep plugging those leaks!
21:04 [particle] i wonder what coverity would say about smop
21:05 ruoso valgrind says I don't have any leak
21:05 ruoso no leaks and no errors
21:05 ruoso later &
21:18 pugs_svn r19851 | buchetc++ | Some new heads and code formats
21:21 pugs_svn r19852 | buchetc++ | first version of spec tests for S17
21:34 moritz_ buchetc++ # async tests
22:10 IllvilJa joined #perl6
22:23 justatheory joined #perl6
22:25 luqui joined #perl6
22:30 pbuetow joined #perl6
22:38 pugs_svn r19853 | buchetc++ | remove #?pugs line
22:47 Lorn__ joined #perl6
23:36 pugs_svn r19854 | lwall++ | [async.t] put todos into fudge normal form (see t/spec/README)
23:41 Limbic_Region joined #perl6
23:44 Auzon joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo