Camelia, the Perl 6 bug

IRC log for #perl6, 2005-09-12

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:03 evalbot_6954 has quit IRC (Remote closed the connection)
00:03 svnbot r6955 | putter++ | pugs: To find runjs/pugsjs/crude_repl, first check if it is in a known relative location (perl5/...), then use PATH.  A kludge, but it seems plausible for now.
00:03 evalbot_6955 has joined #perl6
00:06 putter fglock_: so, I'm running a smoke with the real Test.pm.  make test-perl5 now also works.  so we'll see where we are.
00:07 putter ulimit -S -v 750000  and  export PUGS_HACK_TIMEOUT=1000  are still a good idea when running make smoke-perl5
00:09 putter oh, it is nice to just be able to say   ./pugs -B perl5 t/01-sanity/07-isa.t
00:10 chibiryuu`gone` is now known as chibiryuu
00:11 putter fglock_: so this problem still exists: "foo".isa("Str"), but not $x="foo"; $x.isa("Str")   what's the right thing?
00:12 fglock_ $x isa Scalar
00:13 fglock_ I'll check ...
00:14 fglock_ ok, it's fixable - Scalar.pm line 232
00:14 putter having $x.isa("WhatsInTheScalar") seems more likely to be the right thing.  perhaps $x.isa("Scalar") in addition?
00:14 putter ah, ok, looking
00:15 putter or did you want to do it?
00:15 fglock_ if the cell is empty, return ::CLASS, else return .fetch.isa()
00:16 fglock_ looking...
00:16 putter empty is defined(cell->fetch) ?
00:17 fglock_ defined _('$:cell')->fetch
00:18 putter same thing i assume for ->does().   what else?
00:18 justatheory has joined #perl6
00:18 fglock_ ref ? (not sure)
00:18 evalbot_6955 has quit IRC (Remote closed the connection)
00:19 evalbot_6956 has joined #perl6
00:19 fglock_ no, ok - all other methods are ok, they are handled by AUTOLOAD
00:19 svnbot r6956 | iblech++ | * t/builtins/math/sqrt.t: s/is/is_approx/
00:19 svnbot r6956 | iblech++ | * t/builtins/strings/split.t: s/\$todo/:todo($todo)/ (same change as was needed
00:19 svnbot r6956 | iblech++ |   for Test.pm in r6938)
00:19 svnbot r6956 | iblech++ | * util/smokeserv/smokeserv-server.pl: Prevent division by zero errors.
00:20 putter ok, so I have
00:20 putter            'isa' =>     sub {
00:20 putter shift; my $tmp = _('$:cell')->fetch;
00:20 putter defined $tmp ? $tmp->isa(@_) : ::next_METHOD();
00:20 putter    },
00:20 putter and obviously some tabs to crush.
00:21 fglock_ if param eq 'Scalar', return true
00:21 fglock_ maybe
00:22 putter makes sense.  true as in Bool->new?
00:23 Supaplex is now known as DeathWoIf
00:23 DeathWoIf is now known as Supaplex
00:23 fglock_ it should autobox, so it doesn't matter much
00:23 putter k
00:23 fglock_ but I usually return boxed
00:24 fglock_ there should be a ruling for this
00:24 putter I now have
00:24 putter            'isa' =>     sub {
00:24 putter                my($cls)=@_;
00:24 putter                return 1 if $cls eq 'Scalar';
00:24 putter                my $tmp = _('$:cell')->fetch;
00:24 putter                defined $tmp ? $tmp->isa($cls) : ::next_METHOD();
00:24 putter            },
00:25 fglock_ nice
00:25 putter should 'Scalar' be something more inheritance sensitive?
00:25 putter or perhaps not to worry at this point.   ok, testing...
00:26 fglock_ it should, but it takes more knowledge of mm :)
00:26 putter btw, the next question will be .ref returns Str-0.0.1-cpan:FGLOCK which ne "Str"...
00:26 putter k
00:27 fglock_ try using the {name} key instead of {identifier}
00:27 putter nope, deep recursion in Perl6::Method::do, normal and metaclass dispatch
00:27 putter k
00:29 fglock_ maybe don't use ::next_METHOD(); return 0 instead ? (not sure where the loop is)
00:29 putter ok
00:29 putter is it "Bit" or "Bool"?  test says Bool, .ref says Bit.
00:30 iblechbot has quit IRC (Connection reset by peer)
00:30 fglock_ Bool is an enum, Bit is the Class (?)
00:31 putter ?
00:31 putter still deep recursion.
00:31 fglock_ looking up
00:31 putter the .ref fix did fix one of the 07-ref.t tests though! :)
00:32 fglock_ we will need stevan's help, I think
00:33 putter ok
00:35 luqui has joined #perl6
00:36 fglock_ hi luqui
00:36 luqui hi fglock_
00:37 fglock_ can you help here - is 'Bit' a class, and 'Bool' a type, or enum, or something else?
00:37 luqui er
00:37 luqui I should check on that
00:37 luqui Larry never wanted a Bool class, or at least bool constants, so that people wouldn't do:
00:38 luqui if $flag == true {...}
00:38 luqui but it seems that he is out of that mindset now
00:38 elmex has quit IRC ("Changing server")
00:38 * luqui would p6l
00:38 luqui it
00:39 fglock_ thanks
00:39 luqui oh wait
00:39 luqui look at A12 under Enums
00:40 luqui (3/4 of the way down)
00:41 luqui where presumably s/is//
00:41 putter fglock_:                my($self,$cls)=@_;  rather than                my($cls)=@_;    ;)
00:42 stevan_ fglock_: $a_class->meta->name() should work
00:43 stevan_ re: something you asked a llong time ago
00:43 putter yes.  it didnt back then at least.
00:43 stevan_ putter: hmmm, maybe I need to see the context
00:44 fglock_ stevan: ok - I was just helping putter with that :)
00:45 fglock_ putter: which test was using Bool?
00:46 putter 07-ref.t used ?1 as a test value.
00:46 svnbot r6957 | stevan++ | Perl6::MetaModel 2.0 -
00:46 svnbot r6957 | stevan++ | * $?PACKAGE is now bound for both package subs as well as
00:46 svnbot r6957 | stevan++ |   all different kinds of methods
00:46 svnbot r6957 | stevan++ |     - added a test for this too
00:47 putter but the name stuff, aka .ref, now works.   thanks!
00:47 stevan_ putter: ok :)
00:47 stevan_ sorry about MM 1.0 guys,.. it has issues
00:47 putter np
00:48 stevan_ I have a question about the package implementation
00:48 stevan_ I would appreciate input/opinions/comments
00:49 stevan_ I am thinking about implementing some form of "my" and "our" into the Package meta object
00:49 stevan_ so that "my" values wont be accesible from outside the package
00:49 evalbot_6956 has quit IRC (Remote closed the connection)
00:49 stevan_ but our values will
00:49 evalbot_6958 has joined #perl6
00:49 stevan_ but I am not sure if this makes sense to do
00:50 fglock_ S02 talks about "Bit", but all tests use "Bool" - strange
00:50 stevan_ or if I should just implement a name -> value namespace bindings
00:50 stevan_ thoughts, comments, suggestions welcome :)
00:51 fglock_ stevan_: we do need some way to do lexicals
00:51 svnbot r6958 | putter++ | PIL-Run: 07-isa.t passes.  07-ref.t almost passes (Bit ne Bool).  fglock++
00:52 stevan_ fglock_: but wont the Pad deal with them?
00:52 fglock_ do you plan to use a hash, or p5 namespace?
00:52 obra is anyone blogging pugs in autrijus absence?
00:52 stevan_ fglock_: for now a hash,. this keeps the MM more portable
00:52 stevan_ obra: nope
00:53 nothingmuch http://nothingmuch.woobling.org/co​mpilation_of_circular_prelude.pdf
00:53 nothingmuch it's huge
00:53 fglock_ do you think it can be extended to make instance local variables? (closures?)
00:53 nothingmuch and for a 3 line program
00:54 stevan_ fglock_: you mean class C { has $.foo } or class C { my $.foo }
00:54 fglock_ putter: we could make Bit eq Bool temporarily, until we find out
00:55 nothingmuch fglock_: please comment
00:55 nothingmuch putter: please look at it too
00:55 putter oh, no need.  better to live with the test failing, a reminder that there is an issue
00:55 putter nothingmuch: ok, sec
00:55 fglock_ stevan_: if you can make both work, all our problems are solved
00:55 nothingmuch in the omnigraffle version i can make the layers go away
00:55 nothingmuch and it looks like a cute animation
00:56 nothingmuch does anybody want the original to play with?
00:56 putter pilrun currently has a first cut at lexical support.  just uses p5 lexicals.
00:56 fglock_ how about making variable lookup an object method? (hope this make sense)
00:56 nothingmuch the only problem is that occasionally i forget about layers and things get mixed up
00:56 putter also temp()s
00:56 stevan_ fglock_: class C { my $.foo } is just a private class attribute
00:56 stevan_ fglock_: currently all Packages have a FETCH and STORE method
00:56 stevan_ which allows variabile lookup
00:57 stevan_ I think that is what you want
00:57 fglock_ nothingmuch: ok
00:57 nothingmuch i need to sleep
00:57 nothingmuch but first, some annotations
00:57 nothingmuch in the example &infix:<*> has a reference implementation that isn't used
00:57 stevan_ putter: not sure if temp() and state() are related to packages as much as they are related to blocks
00:57 nothingmuch &say has a reference implementation that uses &print
00:58 nothingmuch the runtime doesn't provide &say but it does provide &print
00:58 nothingmuch &print has to be implemented by the native code because it does IO which is runtime dependant
00:58 nothingmuch &infix:<-> has no reference implementation
00:58 putter stevan_: right
00:58 nothingmuch the compilation process see that no eval is being made, hence no new code can ever be introduced by any of the cod that can be run
00:58 nothingmuch no symbol table assignments are made either
00:58 Khisanth subtraction is not implemented?
00:59 nothingmuch Khisanth: it is not implemented in the perl 6 prelude
00:59 nothingmuch &infix:<*> is implemented as multi sub &infix:<*> (Int $x, Int $y) { [+] $x xx $y }
00:59 fglock_ stevan_: I'll take a look - I have to find out what I want exactly :)
00:59 nothingmuch since a native alternative is provided &infix:<+> and &infix:<xx> are omitted from the picture
01:00 stevan_ fglock_: the $::Package meta object is in lib/genesis.pl
01:00 nothingmuch anyway, since no runtime symbol table assignments are made either, all subroutines are statically resolved
01:00 Khisanth ah so there is infix:<+>
01:00 stevan_ and there are some tests for it in t/23_Package.t
01:00 nothingmuch including hard jumps to the native code
01:00 nothingmuch Khisanth: not in the compiled output
01:00 nothingmuch since it isn't needed
01:00 putter stevan_: a straight n->v seems a good first step.
01:00 stevan_ putter: that is what I currently have
01:01 stevan_ along with a special case for subs
01:01 nothingmuch WRT hard jumps - this is the extent of what is possible... this could just put in the correct opcode
01:01 putter even if one were to do my/our, one would need a back door for reflection/development
01:01 stevan_ when you add a sub to a package it wraps the sub to bind $?PACKAGE
01:02 stevan_ putter: I suppose block level my/our and package level my/our can eventually be merged
01:02 stevan_ if they seems to be too redundant
01:02 putter nothingmuch: I'm sorry, I'm not multi-thread enabled at the moment.  I will backlock and  look at url...
01:02 nothingmuch okay
01:03 nothingmuch i'm adding the annotation to the file
01:04 putter stevan_: one thing to keep in mind, maybe, if it doesnt distract you...  ok, never mind.  optimize for one thing at a time.  for now, mm completeness/correctness.
01:04 stevan_ putter: distract me.. please
01:05 putter ;)
01:05 stevan_ my ADD can handle it :)
01:06 putter I was thinking that we might end up with a hybrid scheme, where a pilrun package is a p5 package (fast) and an associated Package object (complete).
01:06 stevan_ putter: yes, I have been thinking about ways to optimized the metamodel
01:07 stevan_ currently when I profile the code,.. the majority of time is spent in dispatch()
01:07 stevan_ so I have been thinking about how to use p5 pacakges to optimize that away
01:08 putter but better to get Packages working first, and then worry about adding hooks
01:08 fglock_ btw, you can use unboxed things most of the time, and only use objects where needed
01:08 stevan_ putter: basic packages are up in mm2
01:08 stevan_ s/up/working/
01:08 putter :)
01:08 stevan_ ok, well I have to run,.. movie time at stevan's house
01:09 putter enjoy.  thanks for your help
01:09 nothingmuch updated
01:09 * fglock_ eats home make waffle cones :)
01:09 putter fglock_: yes, once you get to them they will be fast, but if that takes 5 method calls... :)
01:10 fglock_ s/make/made/
01:10 putter that makes 3 people now suggesting I have dinner.  hmm...
01:11 stevan_ putter: go eat # thats 4
01:12 putter nothingmuch: my web broser doesnt like your pdf url.  blank page.
01:12 fglock_ I got a blank page too - I thought it was my computer's fault
01:12 putter ;)
01:13 nothingmuch putter: i'll export one with an opaque background
01:14 nothingmuch try now
01:15 nothingmuch does it work?
01:15 fglock_ my browser just died - loading again
01:17 putter nothingmuch: not in the default engine (ggv?) but its fine in gv.
01:18 putter fglock_: anything you wanted to get done this evening before I sign off?
01:18 nothingmuch goody
01:18 fglock_ I'm ok, thanks :)
01:19 fglock_ go eat something
01:19 putter wow
01:21 putter nothingmuch: the simplest thing might be to start a backend and prototype it.  either cloning p5, js, or starting a new one.  for a dynamic language, its really just a file or two of code.
01:21 chibiryuu has quit IRC (Read error: 110 (Connection timed out))
01:22 putter other than that, I plead insufficient active braincells to make any useful observations.  I'll leave it up - maybe later.
01:22 nothingmuch ugh, adamk is pissing me off
01:22 putter ok, end of day.
01:22 putter fglock_: thanks for all your work.  it was key.
01:22 nothingmuch putter: i'll try to have a go at it
01:22 putter and fun
01:23 fglock_ thank you - good night
01:23 putter nothingmuch: sound like a plan.  each new backend so far adds additional perspective on the whole problem
01:23 nothingmuch yah
01:23 putter good night &
01:23 putter has quit IRC ("Leaving")
01:23 nothingmuch ciao!
01:26 fglock_ nothingmuch: this poor computer can't open it - I'll try later
01:26 nothingmuch fglock_: i can export anything else you might like
01:26 nothingmuch png, jpeg, eps
01:26 * nothingmuch flames adamk
01:26 fglock_ jpeg please!
01:27 nothingmuch visio, svg
01:27 nothingmuch wow... the file is 10x bigger as jpeg
01:27 nothingmuch http://nothingmuch.woobling.org/co​mpilation_of_circular_prelude.jpg
01:27 nothingmuch and half as readable
01:27 * nothingmuch likes vector graphics
01:28 dduncan files like that would be better as a png than as a jpeg
01:28 svnbot r6959 | Darren_Duncan++ | /ext/Locale-KeyedText : resynced with Perl 5 version 1.6.1; rewrapped any POD in KeyedText.pm to 75 chars that was wrapped to 80 chars
01:28 nothingmuch dduncan: good point... /me exports another
01:29 nothingmuch although with all those shadows it'll probably make a mess of the pallettes
01:29 dduncan not really
01:29 dduncan PNG supports millions of colors natively
01:29 dduncan so no pallets
01:29 nothingmuch visio and png uploaded
01:29 nothingmuch i thought it compressed them like gif
01:29 dduncan even then, each color of shadow adds, what, 10 distinct colors?
01:29 dduncan no
01:29 nothingmuch good to know =)
01:30 dduncan while PNG is a replacement for GIF, its better
01:30 evalbot_6958 has quit IRC (Remote closed the connection)
01:30 dduncan they are both lossless, and work best with images having large swatches of the same color
01:30 nothingmuch just s/\.\w+?$/\.(png,jpg,pdf,vdx)/
01:30 dduncan such as graphics you draw, or export from vector
01:30 evalbot_6959 has joined #perl6
01:30 nothingmuch yeah, that much i know, and I expected the large swatches of same color thing to relate to huffman coding of the color pallettes and the fact that they are indexed like in GIF
01:31 dduncan by contrast, JPEG is best for areas that are not full of flat colors and are entirely gradiant-like, such as photographs
01:31 nothingmuch how does PNG compress stuff?
01:31 dduncan not sure, but it isn't patented
01:31 nothingmuch heh, i ijust got a bug report: "You _really_ _really_ need to do some comprehensive testing on this to verify that it actually behaves the way it is expected to"
01:31 dduncan PNG was created partly as a way to get around the patent fees for using GIF
01:31 nothingmuch it uses zlib, right?
01:31 dduncan also, it is superior in that it supports millions of colors
01:31 nothingmuch as opposed to lzw?
01:31 dduncan I don't know
01:32 dduncan I do know that PNG supports multiple compression methods
01:32 dduncan so does TIFF
01:32 justatheory has quit IRC ()
01:32 fglock_ I can read it now
01:33 dduncan generally speaking, PNG is the current 'standard' for non-photo graphics on the web
01:34 dduncan I think another advantage of PNG is that it embeds gamma information, so they display correctly regardless of the gamma of your computer ... or at least the info is there so your comp knows how it *should* look
01:34 nothingmuch heh
01:35 dduncan by contrasts, GIFs created on a Mac could look too light or dark under Windows, and the reverse likewise
01:35 dduncan since they have different default gamma settings
01:36 dduncan I could be wrong about those details, but the P stands for 'Portable'
01:36 dduncan so it must be thinking of those things
01:39 fglock_ nothingmuch: the picture helps a lot.
01:39 nothingmuch chromatic: backlog-ping
01:43 fglock_ going to make the dinner &
01:44 fglock_ has left
01:45 dudley nothingmuch: can you upload the .graffle?
01:45 nothingmuch sure
01:45 nothingmuch i need to zip it first, right?
01:45 dudley I don't know, do you?
01:45 nothingmuch let's find out
01:46 dudley I guess if it's a bundle. But sometimes they're bundles and sometimes a flat file.
01:46 nothingmuch it looks like XML
01:46 nothingmuch have fun
01:46 nothingmuch (it's up)
01:46 dudley thanks
01:47 * nothingmuch uploads yet another UNIVERSAL::isa
01:52 nothingmuch dudley: did it work?
01:52 dudley Yeah, thanks!
01:53 nothingmuch okay, then my work is done for today... off to bed
01:54 nothingmuch (btw, it was made with the version 4 beta)
01:56 dudley nothingmuch++  #pretty pictures
02:04 ods15 has quit IRC (Read error: 104 (Connection reset by peer))
02:09 ods15 has joined #perl6
02:12 nothingmuch has left
02:37 dudley has quit IRC ()
02:48 justatheory has joined #perl6
02:56 brentdax has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 cognominal has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 penk has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 ajs_home has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 autrijus has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 pasteling has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 awwaiid has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 wilx has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 orafu has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 cmilfo has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 mugwump has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 tewk has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 wolverian has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 tcliou has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 kgftr|konobi has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 buu has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 kvakke has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 nnunley has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 acme__ has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 meppl has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 kakos has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 perlbot has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 pdcawley has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 yinjieh has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 ingy has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 gruber has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 QtPlatypus has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Masque has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 coral has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 sri__ has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 webmind- has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 jiing has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 rlb3 has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Forth has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 ycheng has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Juerd has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 SamB has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Odin- has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Southen has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 hexmode has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Supaplex has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 svnbot has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 cookys has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 venk has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 dduncan has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Amnesiac has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 typester has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 xern has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 castaway_ has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 sahadev_ has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 integral has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 gugod has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 vcv- has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 masak has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 justatheory has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 ods15 has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 evalbot_6959 has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 luqui has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 xinming has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 theorbtwo has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 Khisanth has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 stevan_ has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 scw has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 ajs_ has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 gc_mnc has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 pjcj has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 spinclad has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 jp-autark has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 PerlJam has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 mtve has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 hcchien has quit IRC (herbert.freenode.net irc.freenode.net)
02:56 queldor has quit IRC (Success)
02:56 revdiablo has quit IRC (Read error: 104 (Connection reset by peer))
02:56 revdiablo has joined #perl6
02:56 justatheory has joined #perl6
02:56 ods15 has joined #perl6
02:56 evalbot_6959 has joined #perl6
02:56 luqui has joined #perl6
02:56 brentdax has joined #perl6
02:56 xinming has joined #perl6
02:56 dduncan has joined #perl6
02:56 Amnesiac has joined #perl6
02:56 cognominal has joined #perl6
02:56 SamB has joined #perl6
02:56 Forth has joined #perl6
02:56 rlb3 has joined #perl6
02:56 penk has joined #perl6
02:56 typester has joined #perl6
02:56 xern has joined #perl6
02:56 nnunley has joined #perl6
02:56 ajs_home has joined #perl6
02:56 autrijus has joined #perl6
02:56 acme__ has joined #perl6
02:56 theorbtwo has joined #perl6
02:56 castaway_ has joined #perl6
02:56 Khisanth has joined #perl6
02:56 meppl has joined #perl6
02:56 stevan_ has joined #perl6
02:56 ycheng has joined #perl6
02:56 Juerd has joined #perl6
02:56 scw has joined #perl6
02:56 pasteling has joined #perl6
02:56 ajs_ has joined #perl6
02:56 sahadev_ has joined #perl6
02:56 integral has joined #perl6
02:56 gc_mnc has joined #perl6
02:56 awwaiid has joined #perl6
02:56 hexmode has joined #perl6
02:56 Odin- has joined #perl6
02:56 wilx has joined #perl6
02:56 kakos has joined #perl6
02:56 perlbot has joined #perl6
02:56 Supaplex has joined #perl6
02:56 svnbot has joined #perl6
02:56 orafu has joined #perl6
02:56 cookys has joined #perl6
02:56 venk has joined #perl6
02:56 gugod has joined #perl6
02:56 vcv- has joined #perl6
02:56 masak has joined #perl6
02:56 Southen has joined #perl6
02:56 cmilfo has joined #perl6
02:56 pjcj has joined #perl6
02:56 pdcawley has joined #perl6
02:56 spinclad has joined #perl6
02:56 jp-autark has joined #perl6
02:56 PerlJam has joined #perl6
02:56 yinjieh has joined #perl6
02:56 mtve has joined #perl6
02:56 ingy has joined #perl6
02:56 gruber has joined #perl6
02:56 mugwump has joined #perl6
02:56 tewk has joined #perl6
02:56 wolverian has joined #perl6
02:56 tcliou has joined #perl6
02:56 kgftr|konobi has joined #perl6
02:56 QtPlatypus has joined #perl6
02:56 buu has joined #perl6
02:56 kvakke has joined #perl6
02:56 Masque has joined #perl6
02:56 jiing has joined #perl6
02:56 webmind- has joined #perl6
02:56 coral has joined #perl6
02:56 sri__ has joined #perl6
02:56 hcchien has joined #perl6
02:56 * Khisanth slaps pugs
03:00 queldor has joined #perl6
03:03 rafl has joined #perl6
03:06 putter has joined #perl6
03:06 putter fglock: array's are down again:
03:07 putter p5ugs> @a=(3,4)
03:07 putter (3, 4, undef ... 3, 4, undef)
03:07 putter &
03:07 putter has quit IRC (Client Quit)
03:27 bd_ has joined #perl6
03:28 revdiablo has quit IRC ("leaving")
03:32 revdiablo has joined #perl6
03:46 revdiablo has quit IRC ("leaving")
03:46 revdiablo has joined #perl6
03:58 Amnesiac has quit IRC ("Leaving")
04:31 luqui ?eval my @a = (1,2,3); say +<<3 @a 5>>
04:31 evalbot_6959 Error:  unexpected "@" expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input
04:31 luqui ?eval my @a = (1,2,3); say +<<3 @a[] 5>>
04:31 evalbot_6959 Error:  unexpected "@" expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input
04:31 luqui ?eval my @a = (1,2,3);
04:31 evalbot_6959 [1, 2, 3]
04:31 luqui ?eval my @a = (1,2,3); say + <<3 @a[] 5>>
04:31 evalbot_6959 5 bool::true
04:31 luqui ?eval my @a = (1,2,3); say + <<3 "@a[]" 5>>
04:31 evalbot_6959 5 bool::true
04:31 luqui bzzzt wrong
04:34 QtPlatypus ?eval my @a = (1,2,3); say  <<3 "@a[]" 5>>
04:34 evalbot_6959 3"123"5 bool::true
04:34 QtPlatypus ?eval my @a = (1,2,3); say  join "+",<<3 "@a[]" 5>>
04:34 evalbot_6959 3+"1+2+3"+5 bool::true
04:34 QtPlatypus Now that is damn weard
04:35 luqui it is?
04:35 luqui it seems just like naive qw interpolation to me
04:38 luqui ?eval my $x = "hello world";  say join "+", <<foo $x bar>>
04:38 evalbot_6959 foo+hello+world+bar bool::true
04:38 luqui ?eval my $x = "hello world";  say join "+", <<foo "$x" bar>>
04:38 evalbot_6959 foo+"hello+world"+bar bool::true
04:38 luqui looks like it just does interpolates then splits on whitespace
04:39 * QtPlatypus nods.
04:53 comand has joined #perl6
05:02 SM_ax has joined #perl6
05:07 justatheory has quit IRC (Read error: 110 (Connection timed out))
05:10 comand has left
05:32 ods15_ has joined #perl6
05:37 ods15 has quit IRC (Read error: 110 (Connection timed out))
05:38 ods15_ is now known as ods15
05:49 jdv79 has joined #perl6
06:03 jdv79 has left "Leaving"
06:10 GeJ has joined #perl6
06:20 nothingmuch has joined #perl6
06:21 nothingmuch autrijus: ping
06:26 luqui has quit IRC (Remote closed the connection)
06:28 svnbot r6960 | Darren_Duncan++ | /ext/Locale-KeyedText : resync with Perl 5 version ... mainly fixing POD bugs
06:28 evalbot_6959 has quit IRC (Remote closed the connection)
06:29 evalbot_6960 has joined #perl6
06:31 iblechbot has joined #perl6
06:40 dduncan has quit IRC ()
06:41 * nothingmuch thinks that his pretty graph should be made into a 3 t-shirt series
06:41 nothingmuch where 3 people ought to wear them together and stand side by siude
07:08 larsen has joined #perl6
07:21 Aankhen`` has joined #perl6
07:32 scook0 has joined #perl6
07:32 iblechbot has quit IRC (Read error: 110 (Connection timed out))
08:15 nnunley has quit IRC ("This computer has gone to sleep")
08:26 rantanplan_ has joined #perl6
08:28 ods15 hya nothingmuch
08:43 nothingmuch hi h
08:43 nothingmuch o
08:43 nothingmuch want to see another pretty graph?
08:44 nothingmuch "http://nothingmuch.woobling.org/co​mpilation_of_circular_prelude.ext" =~ s/ext/choose_one(qw(graffle vdx pdf png jjpg))/e;
08:45 Aankhen`` You are using outdated syntax, m'friend.
08:46 nothingmuch yes, I am
08:46 nothingmuch sorry =(
08:46 Aankhen`` "http://nothingmuch.woobling.org/co​mpilation_of_circular_prelude.ext" ~~ s/ext$/{ <graffle vdx pdf png jjpg>.pick() }/;
08:47 nothingmuch Aankhen``++
08:47 Aankhen`` :-D
08:47 Aankhen`` I <3 Perl 6.
08:47 nothingmuch oh, s/jjpg/jpg/;
08:48 Aankhen`` Ah, I wondered about that.
08:48 nothingmuch Aankhen``: any feedback?
08:48 Aankhen`` One sec.
08:49 GeJ nothingmuch: yup... count 4 t-shirts series, not 3 :)
08:49 * nothingmuch is satisfied with the fact that the compiled stage is theoretically compactable to very small and very efficient byte code especially for one liner type stuff
08:49 nothingmuch GeJ: heh =)
08:50 Aankhen`` Whoa... that's a large image. o_O
08:51 nothingmuch yeah, and for a small program, too
08:51 Aankhen`` nothingmuch++ # dot's shum g00d work
08:52 broquaint has joined #perl6
08:52 nnunley has joined #perl6
08:52 * nothingmuch hopes to implement the example on top of pil-run
08:52 nothingmuch and then letting the user annotate multi &postfix:<!> to use a perl 5 version
08:52 nothingmuch so that you can get "native speeds" ;-)
08:54 nothingmuch i guess it should look like &postfix:<!><Int $x>.add_native(:runtime<PIL-RUN>, :body("sub fact { my $n = shift; return 1; if ($n < 1); $n * fact($n -1) }"));
08:55 nothingmuch &postfix:<!><0>.add_native(:runtime<PIL-RUN>, &postfix:<!><Int $x>.native(:runtime<PIL-RUN>));
08:55 nothingmuch that way you can flatten multis
08:55 nothingmuch then I'd like to add a verifyability mechanism
08:55 nothingmuch that has a cryptographic digest on the call chain
08:56 nothingmuch each function has a digest that is basically it's body + the digest of all it's called functions
08:56 nothingmuch that way you can provide a native version that builds on top of a junction of hashes
08:57 nothingmuch anyway, bbiab
08:58 iblechbot has joined #perl6
09:01 lhooq has joined #perl6
09:03 rantanplan_ has quit IRC (Remote closed the connection)
09:35 nothingmuch okay
09:35 nothingmuch i have a nice plan
09:35 * nothingmuch writes it down
09:41 wilx has quit IRC (Read error: 104 (Connection reset by peer))
09:57 rantanplan_ has joined #perl6
10:15 Aankhen`` has quit IRC (Connection timed out)
10:15 nothingmuch blam
10:16 nothingmuch yet another p6l warnock candidate
10:16 spinclad shouldn't the  return 1; if ...  above be  return 1 if ...  ?
10:17 nothingmuch yes, sorry
10:17 nothingmuch i hope it's correct in the p6l message =)
10:19 spinclad and doesn't the compiled stage need the  0! = 1  clause?
10:19 nothingmuch that's provided by multi &postfix:<!> (0) { 1 }
10:21 spinclad yes it is, but i don't see that in the compiled stage area.  doesn't it need to be copied in?
10:21 nothingmuch wait
10:21 nothingmuch oh, right
10:21 nothingmuch i'll fix it
10:22 spinclad (i saw the other multi def there)
10:23 spinclad anyway neither of these obscure your point
10:24 nothingmuch updating... exporting and pushing to web
10:25 nothingmuch updated
10:26 nothingmuch what do you think in general?
10:26 spinclad (looking)
10:27 integral wow, that's some diagram!
10:27 integral nothingmuch: the hasing idea is very innovative
10:28 integral *hashing
10:28 * nothingmuch likes it when the practical and the theoritcal complement each other gracefully
10:29 elmex has joined #perl6
10:30 iblechbot_ has joined #perl6
10:31 spinclad it's large for an image but just large enough for its content, which i'd call sensible, straightforward, and well expressed.
10:32 * nothingmuch didn't plan for it to get so big so fast =)
10:32 nothingmuch it's only 3 lines of code after all...
10:32 Juerd nothingmuch: What did you use to create this? It's pretty.
10:32 spinclad i don't see anything off track
10:32 nothingmuch Juerd: the (free) beta version of omigraffle 4 prof
10:32 nothingmuch i really like it
10:32 nothingmuch you create the trees by typing into an outline
10:33 nothingmuch enter creates a new item
10:33 nothingmuch tab makes it a child of it's predecessor sibling
10:33 nothingmuch shif tab makes a node an uncle of it's former self
10:33 nothingmuch it only slightly breaks when you add manual links (like the symbol resolution and binding arrows), and then ask it to lay out the tree gain
10:34 wolverian "its"
10:34 spinclad so it's easy to make parse tree type diagrams
10:34 nothingmuch spinclad: very
10:34 nothingmuch wolverian: sorry... i never get this right =(
10:34 spinclad which of course get large fast
10:35 nothingmuch i think the big heap in this example is the reference implementations inside the prelude
10:37 spinclad can you shrink nodes to fit their text?  i see they're all one size, which keeps the diagram bigger.  likewise the black frames add up
10:37 nothingmuch i'll have a go
10:37 nothingmuch but not now... got to do other stuff
10:38 nothingmuch i'll check the graffle into svn
10:38 nothingmuch that way someone else can also fix it if they have time
10:38 nothingmuch is docs/notes a good place?
10:39 nothingmuch and what's a good file name?
10:39 spinclad certainly in docs/, and notes sounds good
10:41 nothingmuch anyone for a file name?
10:41 spinclad something like ...overridable-prelude... ?
10:42 nothingmuch i think that's a bit too specific..
10:42 nothingmuch since it applies to the runtime system in general\
10:42 nothingmuch (more details in p6l)
10:42 spinclad right
10:43 nothingmuch maybe for now i should just keep the stupid name
10:43 nothingmuch that's backwards compatible to my URL
10:43 spinclad i also didn't get what was specifically circular about the prelude...
10:44 nothingmuch the fact that operations are defined in terms of each other
10:44 iblechbot has quit IRC (Read error: 110 (Connection timed out))
10:44 nothingmuch and that the runtime needs to allow the circularity to be broken by providing a root set of primitives to run a program
10:44 nothingmuch and from then on everything can be filled using the reference implementations
10:44 nothingmuch the runtime authors can implement whatever fits most easily to their language of choice
10:45 nothingmuch thus giving a fast kick start for new backends
10:45 spinclad so ... a redundant basis of definitions
10:45 nothingmuch yes
10:45 nothingmuch with undefinable things such as File::open set to '{ ... }'
10:46 nothingmuch that also allows pure perl 6 code to be compiled to pure languages without the mess of emulating IO =)
10:47 nothingmuch and can also be the basis for safe compartments - only use native alternatives which are marked as safe
10:48 nothingmuch since the prelude can't reach out of the safe compartment without native code, and native code for the bad features isn't made available this should be easy to implement safelyu
10:48 spinclad i think your diagram isn't large enough to show what you mean by circularity, but it shows the structure of overriding definitions well enough
10:48 nothingmuch yeah.. i didn't have a good enough example
10:48 nothingmuch but this can be clarified in the email
10:48 spinclad right
10:48 nothingmuch i'll do that now
10:49 nothingmuch btw - for all who are interested this thread spawned off of the lexical overidding of buiiltin multis thread
10:51 nothingmuch spinclad: do you have a good example for a circular def? i'm not finding one
10:51 * spinclad ponders
10:52 spinclad two things that could either be defined in terms of the other...
10:54 svnbot r6961 | iblech++ | pugs:
10:54 svnbot r6961 | iblech++ | * s/FindBin::Bin/FindBin::RealBin/ so the script works when symlinks are used
10:54 svnbot r6961 | iblech++ |   (on my system, /usr/bin/pugs is a symlink to /home/.../pugs).
10:54 svnbot r6961 | iblech++ | * Not only allow "-B JS", but "-BJS" as well.
10:54 svnbot r6962 | nothingmuch++ | add the omnigraffle (beta 4) file for the circular prelude diagram
10:55 spinclad you can define <+> and <-> in terms of a zero-sum constraint <sum=0>(*@_), or vice versa.
10:55 wolverian * and / are also somewhat circular
10:56 nothingmuch zero sum constraint?
10:56 spinclad <sum=0>(<+>($x,$y), $x, $y)
10:56 evalbot_6960 has quit IRC (Remote closed the connection)
10:56 spinclad <sum=0>(<->$x, $x)
10:57 evalbot_6962 has joined #perl6
10:57 spinclad these define <+> and <->
10:57 nothingmuch ah
10:57 nothingmuch but they require a smarter language  than perl 6 is, WRT to equivelence-is-declaration-is-definition
10:58 * nothingmuch wonders why he keeps saying "WRT to"
10:58 nothingmuch i think i parsed it into "With RespecT" and then the to comes in
10:59 spinclad right, this is more some sort of constraint syntax.
11:00 spinclad conversely, <sum=0>(*@x) == ([+] @x == 0)
11:01 spinclad anyway, that's an old hobby horse of mine that i've played with from way back
11:02 spinclad but is likely not the example you're looking for here
11:03 spinclad (and i made a mistake:  first define <->,
11:04 spinclad then <sum=0>(<-><+>($x,$y), $x, $y)  or similar other constraints)
11:04 nothingmuch i have an idiotic example
11:04 nothingmuch define - and + in terms of each other, and in terms of INC and DEC
11:05 spinclad should work...
11:05 * nothingmuch is going to implement this on his forth system =)
11:07 spinclad -x = 0-x;  x+y = x-(-y)
11:07 spinclad (neg and plus from minus)
11:07 nothingmuch too late
11:07 spinclad or minus from neg and plus
11:09 nothingmuch the problem is that the circularity only starts really popping up for more complex constructs
11:09 nothingmuch the forth systme i'm writing tries to be very circular
11:09 nothingmuch i'll generalize it to make it really circular
11:10 nothingmuch with an orthogonal trapdoor instead of an explicit, DAG one
11:10 spinclad the metamodel fits too
11:11 nothingmuch yeah, I mentioned it
11:11 spinclad object  ->,<-  class
11:11 nothingmuch especially WRT to the speed vs. effort tradeoff
11:11 nothingmuch essentially the runtime only has to implement gnosis (right?)
11:11 nothingmuch and the ref implementation can take over from there
11:12 nothingmuch this also promotes metered optimization - you provide a native alternative only for the things you know are slow based on profiling
11:12 nothingmuch then you can spend your time implementing hot ops instead of everything
11:13 nothingmuch or even make runtime tradeoffs between exactly which native versions of ops you are using
11:13 nothingmuch (via use optimize)
11:13 nothingmuch like 'use optimize :math<integral>'
11:13 nothingmuch this will make a big effort to make all integer math fast, at the expense of complexity in other opcodes
11:14 nothingmuch but it should pay off if you're crunching numbers
11:14 nothingmuch anyway, i'm getting carried away. I better implement it
11:14 Aankhen`` has joined #perl6
11:16 spinclad the ref implementation is just the final knot; the runtime supplies an on-ramp into it to bootstrap
11:17 spinclad optimizing an infinite time into finite
11:17 spinclad (not to be sneezed at!)
11:17 nothingmuch =)
11:17 nothingmuch that's a nice definition
11:17 nothingmuch but also opening the door to impure functions, which can only be stubs in the prelude
11:17 nothingmuch e.g. IO
11:18 * nothingmuch dubs perl 6 runtimes collectively as "dirty finitizing frobber thingies"
11:20 pasteling "nothingmuch" at 212.143.92.226 pasted "weird messages during smoke" (7 lines, 1K) at http://sial.org/pbot/13071
11:20 nothingmuch oi, i copied from screen... sorry
11:21 nothingmuch why is it running perl at all? and why isn't it using the same $^X that ran Makefile.PL?
11:22 spinclad well, thank you for the talk; breakfast calls (and then bed)
11:22 nothingmuch heh
11:22 nothingmuch thank you just the same =)
11:23 spinclad glad to take part
11:23 spinclad &
11:47 joepurl has joined #perl6
11:50 justatheory has joined #perl6
11:58 nothingmuch putter: ping
12:02 evalbot_6962 has quit IRC (Remote closed the connection)
12:02 evalbot_6963 has joined #perl6
12:04 svnbot r6963 | iblech++ | * Usual svn props.
12:04 svnbot r6963 | iblech++ | * ChangeLog: Added initial unsorted section about the changes in PIL2JS.
12:04 dudley has joined #perl6
12:13 kolibrie has joined #perl6
12:13 nothingmuch hi kolibrie
12:13 kolibrie good morning nothingmuch
12:17 Aankhen`` has quit IRC (Read error: 110 (Connection timed out))
12:25 * nothingmuch ponders a nice forth hack
12:26 nothingmuch when you have a return stack overflow, the stack is saved to heap, and it's root element is a fake caller which will restore the return stack
12:27 nothingmuch it's like swap space for your function calls
12:27 justatheory has quit IRC ()
12:54 * rafl did some disconnected commits using svk commit --direct. How do I get them into the online repository now I'm back online?
12:56 nothingmuch svk push --verbatim
12:56 nothingmuch i think
12:56 chihchun has quit IRC (Excess Flood)
12:56 rafl Cannot find the path which '' copied from.
12:56 chihchun has joined #perl6
13:03 dudley svk push --verbatim only works on a branch, I think.
13:05 dudley svk sync, maybe?
13:06 gc_mnc has quit IRC (Read error: 110 (Connection timed out))
13:06 rafl That gives me no headrev at /usr/share/perl5/SVN/Mirror/Ra.pm line 159.
13:12 dudley that just exhausted my entire fount of svk knowledge...
13:15 dudley did you ask on #svk?
13:16 obra er. why were you doing commit --direct?
13:16 obra and not, say on a local branch?
13:18 nothingmuch oh, i see
13:19 nothingmuch in the script wrapper version of pugs (and anywhere really) /usr/bin/perl should never be used
13:19 nothingmuch instead the value $^X as seen by Makefile.PL should be used
13:20 nothingmuch can anyone fix this?
13:24 rafl obra: Because I'm new to svk and that was the only way that I could get working without having much documentation installed.
13:26 obra rafl: svk help intro
13:32 justatheory has joined #perl6
13:32 rafl Great, thanks.
13:33 Qiang_ has joined #perl6
13:34 justatheory has quit IRC (Client Quit)
13:38 robkinyon has joined #perl6
13:38 nothingmuch holla robkinyon
13:39 robkinyon has left
13:39 obra rafl: before you started, did you type "svk help" ever? or "svk" with no options?
13:39 obra did you _see_ the output of 'svk help'? (Not a blame question, but a question of whether making that prose better will help)
13:39 rafl obra: Yes. I also read the help for various commands, but I missed help intro.
13:39 obra ok.
13:39 obra I'm rewriting that page now :)
13:40 * nothingmuch tries to find a suitable mini language to implement the bytecode folding stuff with
13:42 obra rafl: is this better? http://paste.husk.org/4110
13:43 rafl obra: Yes, but it still doesn't prevent people not to read it. Maybe svk should refuse to do anything before svk help intro was called ;-)
13:44 obra uh.. :)
13:45 rafl (No, please don't do that!)
13:45 obra I wouldn't
13:46 scook0 has quit IRC ("Leaving")
13:48 rafl obra: Something that speeds up initial syncs would be cool, though. It takes several hoursfor some of my projects at work.
13:49 obra that depends a lot on the svn side, sadly
13:49 obra but there's work being done
13:55 rafl Cool.
13:56 ajs_ has quit IRC (Read error: 110 (Connection timed out))
14:05 SM_ax has quit IRC ("Download Gaim: http://gaim.sourceforge.net/")
14:09 _meppl_ has joined #perl6
14:10 _meppl_ has quit IRC (Client Quit)
14:10 meppl is now known as _meppl_
14:11 _meppl_ is now known as meppl
14:16 ajs has joined #perl6
14:35 fglock has joined #perl6
14:44 integral has quit IRC (Read error: 110 (Connection timed out))
14:57 integral has joined #perl6
14:59 stevan_ has quit IRC ("Leaving")
14:59 evalbot_6963 has quit IRC (Remote closed the connection)
14:59 svnbot r6964 | fglock++ | * perl5/Array - another stringification fix;
14:59 svnbot r6964 | fglock++ |   - Tied-to-native arrays can do push/pop/shift/unshift
14:59 evalbot_6964 has joined #perl6
15:00 fglock has left "Fui embora"
15:10 * nothingmuch is implementing a PIL like dynamically scoped AST compiler and interpreter in perl 5 as a proof-of-concept for the circular prelude crap
15:10 nothingmuch (no linker)
15:13 PerlJam nothingmuch++  (but you're a crazy person  ;-)
15:14 nothingmuch it's coming out very nicely so far
15:18 integral has quit IRC (Read error: 104 (Connection reset by peer))
15:18 PerlJam When I read your email I thought, "Well, that's obvious.  I wonder why no one thought of it before?"  The answer I gave myself was "someone probably did think of it but no one wanted to do the work"
15:22 nothingmuch hmm
15:22 nothingmuch it seems like the easy way out for me
15:24 justatheory has joined #perl6
15:24 nothingmuch is there a module that can display the diff of two deep structures?
15:24 nothingmuch i'd like something a bit more graphical than Test::Deep, which only displays one difference at a time
15:26 rafl Maybe Data::Diff?
15:27 nothingmuch i am having trouble with it
15:27 nothingmuch it's documentation is conflicting
15:27 rafl UTSL ;-)
15:28 * nothingmuch is in work less mode
15:28 nothingmuch it also doesn't rpetty print
15:34 rafl Huh, what's up with feather?
15:43 GeJ has quit IRC ("Client exiting")
15:44 rafl Ah, now it's up again.
15:55 fglock has joined #perl6
16:03 rafl Any haskell people around that may help me with a small hack? I don't know haskell very well.
16:03 rafl I do args <- getArgs
16:03 rafl Then I want to check args if it contails '--dbp-builder'
16:04 rafl If yes, I want to put the argument following --dbp-builder (delimited by whitespaces or '=') into a variable.
16:04 rafl How to do that?
16:04 integral has joined #perl6
16:11 justatheory has quit IRC ()
16:19 * pdcawley posts the summary.
16:20 saorge has joined #perl6
16:20 nothingmuch has quit IRC (Read error: 110 (Connection timed out))
16:22 integral has quit IRC (Remote closed the connection)
16:23 elmex has quit IRC ("leaving")
16:25 elmex has joined #perl6
16:29 integral has joined #perl6
16:41 evalbot_6964 has quit IRC (Remote closed the connection)
16:41 svnbot r6965 | fglock++ | * perl5 backend - a lazy_lists.t test is skipped, instead of commented out
16:41 svnbot r6965 | fglock++ |   Hash - reading an empty key was causing a warning
16:42 evalbot_6965 has joined #perl6
16:52 nothingmuch has joined #perl6
16:52 * nothingmuch continues work on the PILish thingy
16:54 * Supaplex continues to work on a snack
16:54 rantanplan_ has quit IRC (Remote closed the connection)
17:02 evalbot_6965 has quit IRC (Remote closed the connection)
17:02 evalbot_6966 has joined #perl6
17:03 Juerd Heh, let's set a hostname on that.
17:03 Juerd (Apparently, reverse dns has finally been taken care of)
17:06 svnbot r6966 | fglock++ | * perl5 backend - fixed '(1,2,3,3,4).uniq'
17:06 dudley has quit IRC (Remote closed the connection)
17:10 stevan has joined #perl6
17:11 GeJ has joined #perl6
17:11 svnbot r6967 | fglock++ | * perl5 backend - fixed (-Inf..0) and (-Inf..Inf)
17:12 evalbot_6966 has quit IRC (Remote closed the connection)
17:12 evalbot_6967 has joined #perl6
17:19 dudley has joined #perl6
17:24 autrijus has quit IRC ("leaving")
17:24 autrijus has joined #perl6
17:30 svnbot r6968 | fglock++ | * perl5 backend - fixed @a[1,2].delete
17:30 svnbot r6968 | fglock++ |   - @a[1].delete doesn't work, but @a[1,].delete does
17:32 evalbot_6967 has quit IRC (Remote closed the connection)
17:33 evalbot_6968 has joined #perl6
17:36 svnbot r6969 | fglock++ | * perl5 backend - updated Array TODO
17:36 svnbot r6970 | stevan++ | Perl6::MetaModel 2.0 -
17:36 svnbot r6970 | stevan++ | * more picture updates, mostly just making it look nicer :)
17:36 svnbot r6970 | stevan++ |     - exported version is now a JPEG instead of PNG
17:36 Amnesiac has joined #perl6
17:38 evalbot_6968 has quit IRC (Remote closed the connection)
17:38 evalbot_6970 has joined #perl6
17:44 dudley has quit IRC (Remote closed the connection)
17:48 fglock what is the fixity of Y (zip) in: '@a Y @b Y @c' ?
17:49 fglock infix doesn't work - (@a Y @b) Y @c is wrong
17:50 autrijus it's listfix.
17:50 autrijus infix with "list" associativity
17:50 autrijus compare chainfix
17:50 autrijus $a < $b < $c
17:50 autrijus which is infix with "chain" associativity
17:51 fglock is it supported by Pugs? I can't find out the syntax, sorry
17:52 autrijus infix:<Y> is assoc<list>
17:53 fglock thanks!
17:53 autrijus np :)
17:53 GeJ autrijus: how's autrijus.org?
17:53 autrijus actually I don't know if "is assoc" is supported or parsed in full. the internals does support it
17:54 autrijus GeJ: forever gone
17:54 autrijus unless sleuthkit is more powerful than I imagined; but not going to have time to recover it in the next month anyway
17:54 fglock oops - no, it doesn't work yet :(
17:55 GeJ can you still get your emails? I seen yesterday that linimon set all your ports to ports@ since the mails were bouncing.
17:55 GeJ ( well, I can imagine that this is prolly your least priority for the time being... :) )
17:55 autrijus GeJ: I can now, today. but truth be told I don't have problem with ports@ for the next few months
17:56 autrijus fglock: ah right, it's because traits that takes params isn't parsed yet
17:56 GeJ that's what I was thinking
17:56 autrijus it's rather unfortunate to coincide HD burnout with brain burnout
17:56 autrijus I'm recovering well though, perhaps because of the coincidence
17:57 GeJ "brain burnout"? got sick?
17:57 autrijus er no, just too many things going at once, all with notable urgency
17:58 autrijus so my brain just refused to move -- it's strange like that
17:58 * fglock knows that feeling :)
17:58 dudley has joined #perl6
17:59 * GeJ nods
18:00 GeJ I had a friend who extented the concept of "context switching", scheduling and nice(1) to Real Life(tm)
18:00 autrijus it's a nice metaphor but breaks easily if stretched
18:00 GeJ He could let the phone ringing for 30 minutes without picking it up until he was done with his current task
18:01 brentdax has quit IRC (Read error: 110 (Connection timed out))
18:01 rafl Does anyone know another application than cabal that uses System.Console.GetOpt?
18:01 GeJ the side-effect was that the manager was getting crazy mad when he wanted an answer.
18:02 autrijus rafl: er, openafp? :) http://svn.openfoundry.org/openafp/afpdump.hs
18:03 evalbot_6970 has quit IRC (Remote closed the connection)
18:03 evalbot_6971 has joined #perl6
18:04 stevan hey autrijus :)
18:04 svnbot r6971 | fglock++ | * perl5 backend - added a commented out "is assoc<list>" TODO to PrimP6 zip operators
18:05 autrijus stevan: hi :)
18:05 SamB has quit IRC (Read error: 110 (Connection timed out))
18:05 rafl autrijus: Ups. That was meant to go to #haskell. :-)
18:07 autrijus rafl: nevertheless, the "getOpts" in http://svn.openfoundry.org/openafp/afpdump.hs should get you going
18:09 stevan autrijus: if you have a moment, could you please comment on the latest MM picutre (http://svn.openfoundry.org/pugs/perl5/Per​l6-MetaModel2.0/docs/p6_object_model.jpg)
18:13 autrijus ok. I'm currently in parrotsketch weekly meeting (#parrotsketch on irc.perl.org)
18:13 stevan ah,.. ok,.. take your time no rush
18:13 stevan I am trying to recruit nothingmuch to do a MM->Haskell port
18:13 autrijus but it looks obviously correct.
18:13 autrijus oh btw. singleton methods.
18:14 stevan ?
18:14 autrijus how would that fit in MM, or not at all?
18:14 autrijus s/singleton/per-object/
18:14 zuulvin_ has joined #perl6
18:14 autrijus you know, the rubyish thing of adding methods to specific objects
18:14 stevan hmmm
18:14 stevan the simplest thing would be to create an anon class, and rebless
18:15 stevan but I will look closer at ruby and see
18:16 rafl autrijus: Yes, looks nice.
18:19 evalbot_6971 has quit IRC (Remote closed the connection)
18:19 autrijus stevan: I've been reading Ruby on Ruby
18:19 evalbot_6972 has joined #perl6
18:19 lhooq has quit IRC ("no time to hide...")
18:19 svnbot r6972 | fglock++ | * perl5 backend - delete() should cover all cases now
18:19 autrijus stevan: http://intertwingly.net/slid​es/2005/fosssl/keynote.html
18:21 dduncan has joined #perl6
18:24 evalbot_6972 has quit IRC (Remote closed the connection)
18:24 evalbot_6973 has joined #perl6
18:25 svnbot r6973 | autrijus++ | * run the 'pugs' script through perltidy.
18:26 cognominal has quit IRC (Remote closed the connection)
18:26 nnunley has quit IRC (Read error: 113 (No route to host))
18:30 cognominal has joined #perl6
18:36 * autrijus ponders how to install perl5/ stuff.
18:38 autrijus stevan: how does "class" and "meta" differ?
18:38 autrijus in your jpg
18:38 autrijus does "meta" means "a class implemented as a primitive"?
18:39 stevan autrijus: meta just means "not user level"
18:40 stevan one circle is an instance
18:40 stevan 2 circles a class
18:40 stevan I needed a name for 3 circles
18:40 stevan meta was all I could think of
18:40 autrijus but user still get to access ::Module no?
18:40 stevan uhm
18:40 stevan maybe
18:40 autrijus under the "everything is open unless explicitly closed" doctrine
18:41 stevan $Larry[0] did not seem to think users need access to $::Package and (i assume) $::Module
18:41 stevan I am all for it myself :)
18:41 autrijus sure they don't need to :)
18:41 autrijus but iirc it's harder to hide it from them, not easier
18:41 stevan yes
18:41 stevan open is good :)
18:42 stevan I guess 3 circles means "dont touch me unless you know what you are doing"
18:42 stevan ::Class.add_method('new' => method { "I am NEW" });
18:43 stevan that will break *everything*
18:43 stevan unless they do
18:43 stevan ::Class.add_method('new' => method { "I am NEW".say; next METHOD });
18:44 stevan which will just be really annoying :)
18:44 autrijus I thought a simple "next" would work here :)
18:46 stevan uhm, maybe,.. next METHOD is more explicit though
18:46 stevan next is used in other contexts too right
18:46 stevan for loops, etc
18:46 stevan per-object methods,.. like this: http://onestepback.org/artic​les/usingruby/singleton.html
18:48 nothingmuch i have a chicken and egg problem
18:48 stevan nothingmuch: I thought you were a vegetarian
18:48 nothingmuch sub even ($n)  { odd($n -1) }
18:48 * Khisanth thought you had a chicken leg problem
18:48 nothingmuch sub odd ($n) { even ($n - 1) }
18:49 nothingmuch sub even (0) { 1 };
18:49 nothingmuch sub odd (0) { 0 };
18:49 nothingmuch how do i compute a digest for these
18:49 stevan nothingmuch: yes, that is a classic mutually recursive predicate
18:49 nothingmuch exactly
18:49 stevan one of my favorite examples in my ML book
18:50 nothingmuch i need to compute the digest of &odd such that if &even changes &odd changes too
18:50 nothingmuch so naively I traverse the PIL body of &even
18:50 nothingmuch and digest that + the digest of &odd
18:50 stevan IMO , it should be sub even (0) { Bool::true } sub off (0) { Bool::false }
18:50 nothingmuch right
18:50 nothingmuch but nevermind that
18:50 nothingmuch =)
18:51 nothingmuch i think i know
18:51 SamB has joined #perl6
18:51 stevan but the digest of &odd requires the digest of &even
18:51 nothingmuch right
18:51 nothingmuch i'll digest the bodies without the calls, and traverse the call tree to invalidate later
18:51 nothingmuch then i'll make the digest a two pass process
18:52 GeJ_ has joined #perl6
18:52 stevan autrijus: care to give you opinion on whether package level my/our variables should be handled in ::Package?
18:53 nothingmuch autrijus: did you see the pretty picture from earlier today?
18:53 GeJ has quit IRC (Read error: 110 (Connection timed out))
18:55 GeJ_ is now known as GeJ
18:55 autrijus nothingmuch: no. url?
18:56 autrijus stevan: no it's just a big implicit block.
18:56 nothingmuch p6l post,
18:56 stevan autrijus: but shouldn't ::Package be providing access to the variables init?
18:56 * nothingmuch waits for safari to come back from swap
18:56 stevan s/init/in it/
18:57 nothingmuch "http://nothingmuch.woobling.org/​compilation_of_circular_prelude." . any(<pdf vdx graffle png jpg>).pick;
18:57 nothingmuch uh, ~ not .
18:57 nothingmuch autrijus: i'm implementing a mini language AST
18:57 nothingmuch which supports static global symbols, and dynamically scoped symbols
18:57 autrijus stevan: how is a package my different from a closure my?
18:57 nothingmuch as well as this form of circular breaking
18:58 nothingmuch i think i'm about 70% done
18:58 stevan autrijus: it is not really,..
18:58 stevan I suppose I am wondering if I should mediate access to the package's stash or not
18:58 autrijus stevan: my point is mostly that all "my" is just hoisted to top of a closure
18:58 autrijus stevan: and package provides an implicit closure
18:58 autrijus file too
18:59 autrijus stevan: our() however is indeed alias to package stash, and package should provide a stash
19:00 stevan autrijus: currently I have a %:namespace as a member of ::Package
19:00 stevan will that be enough?
19:00 stevan and a FETCH and STORE to get at things inside %:namespace
19:00 autrijus sure, that sounds exactly like what it's needed
19:01 autrijus curiously with this scheme, nested namespaces as p6 mandates is easier than the global flat namespace in p5
19:01 stevan and FETCH and STORE for ::Class perform meta-model operations in certain circumstances
19:01 stevan autrijus: yup,.. ::FooPackage->FETCH('::Bar') returns the ::BarPackage object
19:02 * autrijus praises sanity
19:02 stevan so I should just not worry about my/our distinctions for Packages
19:03 autrijus my() is not pkg's biz
19:03 stevan however, what about class C { my $.bar }
19:03 autrijus our() is just a my() that aliases to stash
19:03 stevan private class attributes
19:03 autrijus it turns out it has the same semantic as (my $bar).
19:03 stevan or should I just punt on that
19:03 stevan well the class needs to know about it though
19:03 svnbot r6974 | fglock++ | * perl5 backend - @a[1].delete works
19:03 autrijus ::C := class.new(sub { my $.bar ... })
19:04 domm has joined #perl6
19:04 stevan but I suppose we can just let the closure deal
19:04 stevan yup
19:04 stevan thats what I was thinking
19:04 autrijus I think if you want semantic sugar, the compiler need to gen it for you
19:04 autrijus not at the mm level.
19:04 * stevan checks that off his TODO list :)
19:04 autrijus :))
19:04 stevan ok,... now everything is clear for Roles
19:05 evalbot_6973 has quit IRC (Remote closed the connection)
19:05 evalbot_6974 has joined #perl6
19:05 stevan I just need Larry to answer my p6l questions, but those are edge cases anyway
19:10 svnbot r6975 | fglock++ | * perl5 backend - fixed Scalar, Array, hash undefine()
19:10 evalbot_6974 has quit IRC (Remote closed the connection)
19:10 penk has quit IRC ("Download Gaim: http://gaim.sourceforge.net/")
19:10 evalbot_6975 has joined #perl6
19:10 justatheory has joined #perl6
19:11 justatheory s/??::/??!!/ ????
19:11 justatheory Is !! dead, then?
19:11 * justatheory is reading the summary
19:13 autrijus !! was never alive -- it was at best undead
19:13 autrijus or rather "ephemeral"
19:13 nothingmuch autrijus: comments so far?
19:13 justatheory I liked !!
19:13 justatheory my $bool = !!$arg;
19:14 autrijus justatheory: it's now spelt ?
19:14 autrijus my $bool = ?$arg;
19:14 justatheory Oh. Huh.
19:14 justatheory Okay, I can dig that. :-)
19:14 autrijus my $bool = true $arg;
19:14 autrijus # sad but true
19:14 justatheory ick
19:14 justatheory I'll use ?$arg
19:14 autrijus my $bool = $arg as Bool;
19:14 fglock re Val.hs - type Bit=Bool, Num=Double - is this official?
19:14 autrijus # timtowtdi
19:14 justatheory my $bool = $arg.bool;
19:15 typester is now known as sleepster_
19:15 autrijus fglock: Bit=Bool is official, Num=Double is I think official too
19:15 fglock ok
19:29 fglock what needs to be done WRT next Pugs release?
19:29 nothingmuch bah
19:30 nothingmuch compiling is hard
19:31 autrijus fglock: triaging tests
19:31 autrijus fglock: mark tests as TODO, write up changelog for pilrun
19:33 stevan autrijus: so do you think I should do away with %:class_attributes field in ::Class?
19:33 stevan just let the package namespace handle it
19:34 autrijus I think it makes a lot of sense.
19:34 stevan I do too
19:34 autrijus if the class object holds instance data of its own, that's fine
19:34 autrijus no need to invent a limbo storage
19:34 stevan I am currently punting on autogenerated accesors
19:35 stevan but I think they would be the only item
19:35 stevan s/item/issue/
19:35 autrijus autogen accessor is the macro layer
19:35 stevan yes
19:35 autrijus i.e. helper layer
19:35 ingy hola
19:35 autrijus greetings ingy-san!
19:35 nothingmuch ingy - i want to commit my patches to Test::Base
19:35 stevan I am picturing a macro which uses class reflection to build a Role which implements the accessors
19:35 ingy hello autrijus-san
19:35 ingy nothingmuch++
19:35 stevan heyya ingy
19:36 autrijus stevan: that sounds like exactly thE righT thinG tO dO.
19:36 ingy anyone here use spidermonkey much?
19:36 ingy hi stevan
19:36 stevan autrijus: that was we get Object.does(Object) for free (sorta)
19:36 nothingmuch ingy: iblech is probably your best shot
19:36 autrijus ingy: iblech I think may speak spidermonkey in his dreams
19:36 ingy what is the global object in server side js?
19:36 stevan ingy: I think putter may have also fiddled with it too
19:37 stevan Object.prototype IIRC
19:37 stevan ur,.. actually maybe not,... what do you mean by "global object"
19:37 ingy like the equivalent of window
19:38 stevan hmmm depends on the execution env
19:38 ingy `window` contains the global object in Clientside js
19:38 autrijus as does a "var foo" no?
19:38 stevan I dont know if there there is a default equivalent
19:38 ingy there has to be I think
19:39 ingy where does `var foo;` define to?
19:39 stevan that should be a global
19:39 ingy um, exactly
19:39 ingy so where do globals go?
19:39 stevan var window;
19:40 stevan window.something = "Ingy wants window";
19:40 stevan are you trying to access the global?
19:40 * nothingmuch thinks autrijus put him on ignore
19:40 * autrijus is tempted to do the "global variables are the bane of purity" rant
19:40 autrijus nothingmuch: no, that's not it, I'm in the parrotsketch meeting, and I've been staring at your picture for a long while
19:40 nothingmuch ah
19:41 nothingmuch autrijus: the p6l mail tries to put it in bullets, rationalizing everything
19:43 ingy stevan:
19:43 ingy > cat t.js
19:43 ingy #!/usr/bin/js
19:43 ingy var foo = {};
19:43 ingy print(foo);
19:43 nothingmuch woo! infinite loop!
19:43 ingy so what object is foo a property of?
19:43 stevan ingy: no idea
19:43 ingy and how can I access that object?
19:43 ingy bummer
19:44 stevan you are looking for the JS equiv of main:: I htink
19:46 stevan ingy: you might try #jsan over on irc.perl.org
19:46 nothingmuch irc.perl.org?
19:46 stevan yeah I think
19:46 zuulvin_ has quit IRC (Remote closed the connection)
19:46 autrijus er no
19:46 autrijus it's on freenode
19:46 stevan doh,.. yeah freenode
19:46 stevan sorry
19:46 autrijus for the same reason why #perl6 is on freenode :)
19:47 nothingmuch what reason is that?
19:47 stevan cause this is where the cool kids hang out :)
19:47 autrijus nothingmuch: less inbreeding
19:48 Juerd What are the risks of inbreeding?
19:48 nothingmuch royalty
19:48 stevan :D
19:48 autrijus arrogant ignorance
19:48 Juerd If Perl 6 is to be the next version of Perl, don't we need the expertise of the people who know Perl 5?
19:48 stevan slopped brows, deep set eyes,.. banjo playing
19:49 autrijus er, sure, ans we got plenty of such people here :)
19:49 Juerd autrijus: Sometimes I do wonder about that
19:49 autrijus it's not like freenode doesn't have a #perl
19:49 Juerd Although I really don't know if people here know anything about Perl 5 internals
19:50 Juerd But that they're not discussed in Perl 6 context, ever, worries me
19:51 Supaplex it's not perl 5.1, it's perl 6. new rules. out with the arthritic crams, in with the free design
19:51 Supaplex crams/cramps/
19:51 autrijus Juerd: mostly it's because we are not actively using XS yet in pilrun
19:51 autrijus as such XS doesn't sound like terribly relevant
19:51 Juerd I see
19:52 Juerd Supaplex: Perl 5.1 was ages ago.
19:52 autrijus itym 5+i
19:52 Juerd By the way, just for the record: I think Perl is a bad name for Perl 6.
19:52 Juerd In case people have missed previous rants :)
19:52 autrijus I know. :)
19:52 nothingmuch i vote for "Absynthe"
19:52 * nothingmuch missed it
19:52 autrijus but how else are we going to say it's compatible with CPAN modules?
19:53 autrijus maybe we'll call the language CPAN!
19:53 Juerd autrijus: By doing so.
19:53 stevan How about "red shiney thing with a big snake wrapped around it sitting on top of a camel being ridden by a giant lambda"
19:53 Juerd autrijus: Or "pugs" - then we don't have to get used to another shell command :)
19:53 Juerd stevan: No snakes.
19:53 stevan Juerd: why not?
19:53 nothingmuch stevan: in that case we must have a skull
19:53 Juerd Python
19:54 autrijus Juerd: pugs is not a bad name. :)
19:54 stevan Juerd: exactly,.. whats wrong with Python,.. we are already using ideas from it in Perl 6
19:54 Juerd autrijus: Uhhuh
19:54 stevan as much as we are using Ruby ideas
19:54 Juerd stevan: Using ideas from it does not make me like it
19:54 stevan (red shiney thing)
19:55 stevan nothingmuch: why the skull?
19:55 Juerd stevan: Java
19:55 Juerd ;)
19:55 nothingmuch heh
19:55 Amnesiac has quit IRC ("Leaving")
19:55 * nothingmuch was thinking more like 80s metal bands logos
19:56 stevan ok,.. so the lambda riding the camel can have a skull atop it's "head"
19:56 dudley has quit IRC ("Leaving")
19:56 * stevan breaks out the sketchbook ...
19:56 nothingmuch since they usually had snakes and skulls and blood and a naked chick
19:56 nothingmuch we need those too
19:56 Amnesiac has joined #perl6
19:56 nothingmuch and some kind of corny flag
19:56 stevan naked chicks and programming dont usually go together
19:56 nothingmuch and our own font with umlauts in the wrong places
19:56 Juerd stevan: Except with PHP
19:57 stevan and a reaper,.. someone needs a reaper
19:57 nothingmuch stevan: it's bound to be a seller
19:57 nothingmuch then we can write perl poetry about suicide
19:57 stevan
19:57 nothingmuch yes, I agree
19:57 nnunley has joined #perl6
19:57 stevan say "sadness" or die
19:58 stevan or rather: "sadness".say or die
19:58 Supaplex is now known as I-I
19:58 stevan to be more perl6-ish about it
19:58 I-I is now known as Supaplex
19:58 nothingmuch kill 0, $pid && exit; # a very grappy guns and roses song
19:58 nothingmuch close STDERR; # yet another crappy guns and roses song
19:59 Supaplex ?
19:59 nothingmuch i don't know metaphors for november rain in perl, but this is suitable for a haiku
19:59 nothingmuch the first is live and let die, and the second is don't cry
19:59 stevan open JUNGLE "fun_n_games.txt"; # another one too
20:00 stevan live and let die is a Paul McCartney song,..and James Bond theme
20:00 nothingmuch this reminds me of my first post to perlmonks.... *nostalgia*
20:00 nothingmuch stevan: guns and roses made a crappy version then... it's still crappy
20:00 stevan yes
20:01 stevan the McCartney version was not much better,.. bad song in general IMO
20:01 * autrijus waves and goes to sleep at 4am again
20:02 stevan nite boss :)
20:02 nothingmuch ciao
20:02 autrijus stevan: I'll need to deboss myself pretty soon :)
20:03 stevan boss emeritus
20:03 fglock I did some ChangeLog stuff... committing
20:03 autrijus nothingmuch: my brain is filled with ineffable questions by looking at your pics and docs
20:03 stevan autrijus: BTW - if you want/need help with the journal,.. just ask,..I am sure we can all pitch in
20:03 autrijus nothingmuch: I think perl5 prototype would work
20:03 nothingmuch autrijus: the perl 5 prototype is 80% working
20:04 autrijus stevan: oh hm, how would you like to do that?
20:04 svnbot r6976 | fglock++ | * ChangeLog - PIL-Run, perl5 runtime
20:04 autrijus stevan: docs/journal/ ?
20:04 pasteling "nothingmuch" at 82.81.247.180 pasted "80% of PILish thingy" (587 lines, 9.4K) at http://sial.org/pbot/13074
20:04 stevan autrijus: I will aggrigate from various sources for you
20:04 nothingmuch currently it does an infinite loop WRT thunking and &control_structure:<if>
20:04 autrijus stevan: mm sounds like a lovely idea
20:04 stevan docs/journal sounds good to me
20:05 stevan check it daily :)
20:05 autrijus right
20:05 autrijus and import from it to ChangeLog much more easily
20:05 stevan it is the least I can do since I cannot help with $work
20:05 autrijus $work is fortunately pausing in 7 days
20:05 autrijus unfortunately that means lots of workload.
20:06 stevan you should probably sleep during that 7 days too
20:06 evalbot_6975 has quit IRC (Remote closed the connection)
20:06 autrijus that sounds also like a good idea.
20:06 evalbot_6976 has joined #perl6
20:06 * autrijus goes to do exactly that *wave*
20:07 Juerd Good night
20:07 nothingmuch ciao
20:10 autrijus nothingmuch: do get the pilish thing committed somewhere in perl5/ if you got the chance...
20:10 autrijus (or is it already?)
20:10 nothingmuch not yet
20:12 Amnesiac has quit IRC ("Leaving")
20:13 ingy oh duh!!
20:13 ingy the global object is in (of course) `this` !!!
20:13 * ingy is proud to have figured that out herself
20:14 nothingmuch ingy++
20:14 nothingmuch ;-)
20:19 ingy autrijus: in js the global object is basically the symbol table.
20:19 ingy this makes js much more fractal than perl
20:19 nothingmuch ow do you spell ternary
20:19 ingy ternary
20:20 ingy :p
20:20 ingy but "how" is spelled with a leading `h`
20:21 ingy nothingmuch: hang in there. you'll get it one day!
20:21 * nothingmuch kicks ingy
20:21 ingy :D
20:22 nothingmuch ugh.... it is broken! sub stub { map { ("$_", Thunk->new(Stub->new($_))) } @_
20:27 dduncan has quit IRC ()
20:34 GeJ has quit IRC ("Client exiting")
20:39 Masque has quit IRC (Read error: 110 (Connection timed out))
20:41 evalbot_6976 has quit IRC (Remote closed the connection)
20:42 evalbot_6977 has joined #perl6
20:46 svnbot r6977 | fglock++ | * ChangeLog - perl5 backend update
20:46 svnbot r6978 | fglock++ | * perl5/Array - removed a debugging warning
20:47 evalbot_6977 has quit IRC (Remote closed the connection)
20:47 evalbot_6978 has joined #perl6
20:53 vcv- has quit IRC (Read error: 104 (Connection reset by peer))
20:56 vcv- has joined #perl6
20:58 svnbot r6979 | rafl++ |  r8341@ata:  rafl | 2005-09-12 22:55:03 +0200
20:58 svnbot r6979 | rafl++ |  * Modified debian/control to build-depend on hs-plugins.
20:58 svnbot r6980 | rafl++ |  r8342@ata:  rafl | 2005-09-12 22:55:53 +0200
20:58 svnbot r6980 | rafl++ |  * Use absolute interpreter path in Locale::KeyedText.
20:58 svnbot r6981 | rafl++ |  r8343@ata:  rafl | 2005-09-12 22:56:46 +0200
20:58 svnbot r6981 | rafl++ |  * Added Debian lintian-override for Locale::KeyedText.
20:58 svnbot r6982 | fglock++ | * ChangeLog - more changes
20:58 kolibrie has quit IRC ("leaving")
20:59 stevan fglock++ # changelogging :)
21:01 fglock anyone with experience on building Pugs in Windows with MingW? I did it once, but I'm getting make errors now
21:02 evalbot_6978 has quit IRC (Remote closed the connection)
21:02 evalbot_6982 has joined #perl6
21:09 nothingmuch HOLY CRAP!
21:15 Amnesiac has joined #perl6
21:15 fglock perl 5 backend does factorial! 'sub fat ($x) { if ( $x == 1 ) { $x } else { $x * fat($x-1) } }'
21:18 * fglock tries to build an infinite list of factorials
21:22 stevan fglock: nice
21:23 stevan fglock: would you mind helping with autrijus's journal?
21:23 fglock sure!
21:23 stevan basically I am thinking we make a docs/journal folder
21:23 stevan we can either do a file per-day
21:23 stevan or a single file
21:24 stevan but each active subproject should summarize on a daily basis (assuming there is something to summarize)
21:24 fglock how about naming 2005-09-12.kwid files (is it kwid?)
21:24 stevan I am not sure how he posts it
21:25 stevan Changelog-style kwid should work though
21:25 stevan I will write up a template tonight
21:26 stevan then we can just cp tempalte.kwid 2005-09-12.kwid for each day
21:26 stevan iblechbot_: if you are listening,.. I would like to get a summary from you too
21:26 stevan and putter of course :)
21:26 stevan and anyone else who is poking around here as well
21:27 stevan I will keep tabs on the commit log to catch any strays as well
21:29 fglock how about starting Pugs journal? this way autrijus can keep his personal journal. OTOH, how about just using the existing kwiki?
21:30 fglock infinite list factorial works!
21:30 fglock sub fat ($x) { if ($x == Inf) { $x } else { if ( $x == 1 ) { $x } else { fat( $x-1) * $x }  } }
21:30 fglock my @a = (1..Inf).map:{ fat($_) }
21:30 fglock (1, 2, 6 ... Inf)
21:30 stevan fglock: well autrijus's journal is where people are used to going for Pugs info, and eventually he will be back to Pugs development
21:30 rafl stevan: stevan Why don't you commit docs/journal/* first, so everyone can add his bits himself.
21:31 stevan rafl: yup, thats what I am thinking
21:31 fglock ok
21:31 stevan fglock: it is just that right now autrijus is pretty busy with $work, and then with HW failure
21:31 stevan so $time is at a premium for him
21:32 stevan this will just help to make his life easier
21:32 fglock mm - it only works without 'my'
21:32 elmex has quit IRC ("leaving")
21:33 evalbot_6982 has quit IRC (Remote closed the connection)
21:33 evalbot_6983 has joined #perl6
21:33 svnbot r6983 | stevan++ | Perl6::MetaModel 2.0 -
21:33 svnbot r6983 | stevan++ | * removing %:class_attributes since they are now just package variables
21:36 fglock @autrijus journal :)
21:36 stevan :)
21:38 elmex has joined #perl6
21:51 svnbot r6984 | stevan++ | docs/journal/* (everyone give autrijus a hand, tell us what you have done)
21:51 svnbot r6984 | stevan++ | - added a template.kwid to be used as a basis for the daily journals
21:51 svnbot r6984 | stevan++ | - added a 2005-09-12.kwid for todays changes, please add to this
21:51 svnbot r6984 | stevan++ | NOTE:
21:51 svnbot r6984 | stevan++ | If your subproject is not listed, please add it, the list is based
21:51 svnbot r6984 | stevan++ | on what I know is going on, and by no means meant to be comprehensive
21:51 svnbot r6985 | stevan++ | whoops forgot the date
21:52 stevan fglock, rafl: please journal away
21:52 * fglock found yet another Array bug :(
21:53 stevan I am not sure the best layout, I just did it prose style, but bulleted lists is fine too
21:53 evalbot_6983 has quit IRC (Remote closed the connection)
21:53 stevan I was never much of a blogger,.. so this is new to me :)
21:53 iblechbot_ has quit IRC (Connection timed out)
21:54 evalbot_6985 has joined #perl6
21:54 rafl stevan: How detailed should be journaled?
21:54 stevan rafl: as detailed as you like
21:55 stevan I assume autrijus will edit things a bit before posting
21:55 stevan rafl: at this point this is a new thing.. I am not sure the "best way" yet
21:55 rafl stevan: Is tere a reason for the lines not being wrapped around?
21:56 stevan rafl: cause my text editor did it for me :)
21:56 stevan sorry
21:56 stevan they should be wrapped
21:56 stevan my bad
21:56 * rafl does it.
21:57 stevan thanks rafl :)
21:58 fglock just did my first journal entry :)
21:58 obra is there a planet.pugs?
21:58 evalbot_6985 has quit IRC (Remote closed the connection)
21:58 stevan obra: I dont think so
21:59 evalbot_6986 has joined #perl6
21:59 obra pity
22:00 stevan obra: you mean something to aggrigate all the pugs stuff?
22:00 * stevan is not familiar with the planet.* stuff
22:01 Juerd obra: There's a Perl 6 planet
22:01 Juerd IIRC
22:01 Juerd obra: Or, there used to be, on planetsix.perl.org
22:01 obra Juerd: yeah, I wrote that.
22:01 integral there is: planet.parrotcode.org and planet6.perl.org
22:01 Juerd Oh
22:01 obra whose blogs should be on planetsix?
22:01 svnbot r6986 | fglock++ | * journal - added infinite fat() example
22:01 obra I can get people up there if the ysend me mail
22:02 Juerd obra: Why would you want a pugs specific one? Most Perl 6 development is somehow relevant to Pugs, and vice versa.
22:02 * stevan goes to get chinese food &
22:03 obra Juerd: I wouldn't. I was asking if there was one
22:03 obra but I'm happy to get pugs peoples blogs on planetsix
22:03 Juerd I misinterpreted the 'pity' then
22:05 obra if there were a planetpugs, I wouldn't have to do any work ;)
22:05 obra as it is, I'm responsible for planetsix
22:10 rafl Wha! svk tries to merge fglock's and my changes to todays journal and spawns me a vim with 4 open windows!
22:10 fglock maybe there are 4 possible combinations of merges :)
22:11 kvakke has quit IRC (Remote closed the connection)
22:12 * rafl hopes he did it right.
22:13 evalbot_6986 has quit IRC (Remote closed the connection)
22:13 svnbot r6987 | rafl++ |  r8343@ata:  rafl | 2005-09-12 22:56:46 +0200
22:13 svnbot r6987 | rafl++ |  * Added Debian lintian-override for Locale::KeyedText.
22:13 svnbot r6988 | fglock++ | * perl5/Array - fixed sparse autovivification, suche as @a[1000000000000]=99
22:14 evalbot_6988 has joined #perl6
22:14 fglock s/suche/such/
22:16 svnbot r6989 | rafl++ |  r8354@ata:  rafl | 2005-09-13 00:08:43 +0200
22:16 svnbot r6989 | rafl++ |  * Added news for the Debian package.
22:16 rafl Well, looks fine, doesn't it?
22:17 nothingmuch wow, that was fun
22:17 nothingmuch the runtime computes factorial
22:17 nothingmuch does IO
22:17 nothingmuch and randomly chooses whether to provide a native * or to take the reference implementation from the "prelude"
22:18 nothingmuch (based on +)
22:19 evalbot_6988 has quit IRC (Remote closed the connection)
22:19 evalbot_6990 has joined #perl6
22:21 fglock nothingmuch: randomly?
22:21 svnbot r6990 | fglock++ | * Journal - news about the newly supprted backends
22:21 svnbot r6991 | nothingmuch++ | the circular stuff demoed in perl 5
22:22 pasteling "nothingmuch" at 82.81.247.180 pasted "randomly" (5 lines, 222B) at http://sial.org/pbot/13078
22:24 nothingmuch fglock: is it clear?
22:24 evalbot_6990 has quit IRC (Remote closed the connection)
22:24 justatheory has quit IRC (Read error: 110 (Connection timed out))
22:25 evalbot_6991 has joined #perl6
22:25 fglock yes
22:25 * nothingmuch likes the fact that the AST runs just as well
22:29 * nothingmuch dances the go to be dance
22:29 nothingmuch someone say something nice about the circular crap first though
22:29 fglock nice crap!
22:29 nothingmuch thanks =)
22:30 * fglock goes home &
22:32 fglock has left "Fui embora"
22:33 svnbot r6992 | rafl++ |  r8354@ata:  rafl | 2005-09-13 00:08:43 +0200
22:33 svnbot r6992 | rafl++ |  * Added news for the Debian package.
22:33 rafl Grrr. svk confuses me.
22:34 svnbot r6993 | rafl++ |  r8363@ata:  rafl | 2005-09-13 00:29:35 +0200
22:34 svnbot r6993 | rafl++ |  * Wrapped around some lines in todays journal.
22:34 evalbot_6991 has quit IRC (Remote closed the connection)
22:35 justatheory has joined #perl6
22:35 evalbot_6993 has joined #perl6
22:37 justatheory has quit IRC (Client Quit)
22:42 Qiang_ has quit IRC ("home")
22:43 luqui has joined #perl6
22:43 nothingmuch luqui: http://svn.openfoundry.org/pugs/do​cs/notes/circular_prelude_stuff.pl
22:43 nothingmuch just run it
22:43 nothingmuch it computes factorial like in the big graph
22:43 * luqui updating svn and running
22:44 nothingmuch and the runtime randomly either includes or doesn't include a "native" implementation of &infix:<*> (which has a ref implementation based on +, -, and if)
22:46 luqui interesting
22:46 luqui that is a large script
22:47 nothingmuch it's a bunch of modules in onefile
22:47 luqui yeah...
22:47 luqui still, that's as big as most of my big modules on cpan
22:47 luqui (where "my" big modules are medium-sized)
22:47 luqui can you give me any help navigating the file?
22:48 nothingmuch sure
22:48 luqui where's an interesting part?
22:48 nothingmuch there is the Reducer class
22:48 nothingmuch Compiler, Interpreter and Dumper all inherit from it
22:49 nothingmuch when you shove the initial AST and env through the compiler it basically does symbol resolution
22:49 nothingmuch by reducing the tree
22:49 nothingmuch (details in a minute)
22:49 nnunley has quit IRC (Success)
22:49 nothingmuch Interpreter does the same process but applies code
22:50 nothingmuch Dumper does the same process but pretty prints
22:50 nothingmuch sub reduce is a sort of MMDish hack to dispatch based on the node we're visiting
22:50 nothingmuch generic_reduce is used to traverse objects without caring about them
22:51 nothingmuch useful in the Dumper for container objects like Seq
22:51 nothingmuch anyway, the magic happens inside 'reduce_sym' in the debugger
22:52 nothingmuch compile_time_resolution does a yucky hack to make recursion possible
22:52 nothingmuch if things are found in the env then the compiler asks the runtime if it has a native Prim with an appropriate hash
22:52 nothingmuch if it does it's used
22:53 nothingmuch if it doesn't the thing from the env is compiled and used instead
22:53 nothingmuch key objects:
22:53 nothingmuch Val - wraps around perl values
22:53 nothingmuch Thunk - a sub
22:53 luqui ahh, Placeholder handles recursion?
22:53 nothingmuch yes
22:54 nnunley has joined #perl6
22:54 nothingmuch Seq - a sequence of exprs, where the last one is used
22:54 nothingmuch App - takes a value that is expected to be reduce to a thunk, and applies it
22:54 nothingmuch puts all the other things in an internal structure
22:54 nothingmuch Param - takes elements from that internal structure
22:55 nothingmuch Pad - a variable with a value
22:55 nothingmuch Stub - something you put in a thunk that can never be executed
22:55 nothingmuch makes sense?
22:55 nothingmuch the Runtime object is really just a factory and a hash
22:55 luqui probably
22:55 luqui the names are fairly descriptive
22:56 * luqui has always been pretty slow at reading codwe
22:56 luqui *code
22:56 nothingmuch the hash is 'digest => Prim'
22:56 nothingmuch (prim iis arity and a code ref, with a name thrown in for debugging fun)
22:57 nothingmuch (and the hash it equals to)
22:57 luqui so how did you plan to work with temp &foo again?
22:57 nothingmuch not in this thing
22:57 luqui do you have a plan?
22:58 nothingmuch in this thing there are constant  static globals
22:58 nothingmuch and dynamicly scoped vars
22:58 nothingmuch the dynamically scoped vars are delayed till runtime
22:58 luqui okay
22:58 nothingmuch but in theory, the hash could be asked by 'reduce_thunk' in Interpreter
22:59 nothingmuch to see if there is a native version
22:59 nothingmuch &foo is just a name
22:59 nothingmuch the hash mapping is WRT values
22:59 luqui I see
23:00 nothingmuch Runtime->new is where primitives are made
23:00 nothingmuch my $f = rand(1) > 0.5; ... ($f ? "*" : ());
23:00 nothingmuch whether or not the runtime provides a native * op or not
23:00 nothingmuch $r->run($env, $prog) - compile and execute AST
23:01 nothingmuch take functions from $env if needed
23:01 nothingmuch Dumper->reduce make an AST into a string
23:01 nothingmuch the next step is to just read the 'reduce_foo' methods one by one
23:01 nothingmuch they're pretty simple
23:01 nothingmuch oh, and note the enter_scope and leave_scope codoe
23:01 nothingmuch in the compiler the code is walked to see if there are any bindings that mask the global env
23:02 nothingmuch symbols that don't map to some structure (a Param or a thing in $env) are a compile time error
23:02 nothingmuch things from Params are left as Sym
23:02 nothingmuch things in $env are resolved into Val
23:03 nothingmuch in the interpreter enter_scope and leave_scope are used to dump pads and manage parameters from an app
23:03 nothingmuch that code is slightly messy, but I was searching for the minimal thing I could use
23:04 luqui yeah, it looks like proof of concept
23:04 luqui it looks like a proof though...
23:04 rafl wi 53
23:04 * luqui needs to play with it a little
23:06 nothingmuch heh, if you raise the Val->new from 5 to around 8-9 then 'with builtin &infix:<*>' finishes in 0.3 seconds, and without doesn't finish any time soon
23:06 * luqui noticed :-)
23:06 luqui I have it on 6 right now
23:07 nothingmuch anyway, off to sleep
23:08 luqui night
23:10 nothingmuch oh btw
23:10 nothingmuch i should note this is the result of the lexical rebinding of subs issue
23:10 nothingmuch sub &foo (&infix:<+>){ 1 + 2 }
23:11 nothingmuch foo(&say(;
23:11 nothingmuch i don't remember how
23:13 luqui really?
23:13 * luqui doesn't see how that could cause this, but cool
23:13 luqui oh btw
23:13 nothingmuch yeah, that's where the circular prelude idea popped up
23:13 luqui I'll let you in on a secret wrt my fmap proposal
23:13 nothingmuch btw - if you have ideas for a circular $env i'll be happy
23:13 luqui I'm trying to make junctions a functor to steal their magic :-)
23:14 * luqui has been thinking about circular $env all day at school
23:15 nothingmuch i think when things like map defined with gather/take start getting there circularity will really shine
23:16 nothingmuch but that it'd be nice to have an example of how two runtimes with different rootsets can run the same code
23:17 * luqui will probably write another proof of concept tonight with a graph-theoretic focus
23:17 luqui that is, how do you tell whether a rootset is complete :-)
23:17 luqui that's the theory thing I was talking about
23:18 nothingmuch you can just dish out the dep tree, and see if you hit a stub
23:18 luqui there are no stubs in a recursively defined prelude
23:18 luqui *circularly
23:18 nothingmuch oh, in that sense
23:18 nothingmuch right
23:18 * nothingmuch is very tired
23:19 luqui get some rest
23:19 nothingmuch one last thing to think of:
23:19 nothingmuch i like the way this scales
23:19 nothingmuch in the example graph the compiled in opcodes are all that is needed to actually run the code
23:19 nothingmuch and this same logic can make the things people fuss so much about (Template::Stash::XS, etc) easier
23:19 nothingmuch at the same go
23:20 nothingmuch embedded devices here we come
23:20 * luqui likes this multiplatform prospect of perl 6 in general
23:20 * luqui &
23:21 nothingmuch has quit IRC ("leaving")
23:26 dudley_ has joined #perl6
23:31 dudley_ is luqui's theory proposal up somewhere?
23:31 awwaiid has quit IRC ("leaving")
23:38 dduncan has joined #perl6
23:38 luqui so many people have been asking about it, maybe I should post it
23:38 stevan luqui: yes, put it back in
23:39 stevan luqui: also please add anything interesting to docs/journal/*
23:39 stevan we are helping autrijus with the journal since $work is crazy for him
23:39 dudley_ luqui:  You can't just tease us like that and then not deliver ;)
23:39 * stevan goes to tuck small children into bed
23:40 luqui I'm just afraid of putting it public on p6l
23:40 luqui because it's a bunch of abstract nonsense
23:40 luqui and some of it is still just nonsense
23:40 luqui so I don't want people to reject it before they understand it
23:40 dudley_ then check it in under docs/ somewhere until it's fully cooked
23:40 luqui but I think putting it in pugs should be safe... I just won't post it to p6l
23:41 luqui pugs folks seem to be pretty good at grokking half-complete abstractions
23:41 dudley_ some of us better than fully-complete abstractions...
23:42 dudley_ That way we get to make up half of it as we go along
23:42 larsen has quit IRC ("later")
23:45 nnunley has quit IRC (Read error: 113 (No route to host))
23:45 stevan luqui: pugs is a repository for the insane :)
23:45 stevan it belongs here
23:46 stevan dudley_: how about the MM in haskell?
23:46 stevan nothingmuch said he would help too
23:46 stevan actually I think up to gnosis in Haskell
23:46 stevan then the rest in Perl 6 would be an even cooler idea
23:47 dudley_ stevan: I know exactly enough haskell to not feel like a total moron when reading haskell
23:47 stevan dudley_: you are way ahead of me then
23:47 stevan nothingmuch has some haskell-fu
23:47 dudley_ but not enough to not feel like a total moron when writing it
23:47 stevan maybe luqui would help too *hint* *hint*
23:47 luqui sure
23:47 stevan horray
23:48 luqui I'm all for writing weird abstractions in haskell these days
23:48 stevan excellent
23:48 stevan the goal of course it to get it into pugs
23:48 luqui oh, you mean under src/
23:48 luqui very cool
23:48 stevan ideally
23:48 luqui so then the Pugs runtime for PIL2 could use it...
23:48 svnbot r6994 | luqui++ |  r3389@jabberwock:  fibonaci | 2005-09-12 17:48:17 +0000
23:48 svnbot r6994 | luqui++ |  Added model_theory, which consists of all my writing on theories
23:48 svnbot r6994 | luqui++ |  so far.
23:49 luqui or maybe even before that... but I wouldn't count on it
23:49 luqui dudley_, there you go
23:49 stevan I am not sure of the timeline for PIL2
23:49 * luqui isn't either
23:49 stevan however, PIL2 and the metamodel need not be dependent
23:49 luqui it was probably short until the demons claimed autrijus
23:49 stevan I would rather autrijus take his time on PIL2
23:49 stevan yes
23:50 evalbot_6993 has quit IRC (Remote closed the connection)
23:50 * stevan has to go take the dog out,.. bbiab &
23:51 evalbot_6994 has joined #perl6
23:53 joepurl has quit IRC (Read error: 110 (Connection timed out))
23:53 dudley_ cool, thanks luqui.
23:56 dudley_ heh, about halfway through the second paragraph, I was thinking "Scala" in big bold type.
23:57 luqui of course, Scala is the language that solved this... kindof
23:57 luqui but it gets crufty quickly
23:57 dudley_ That it does.
23:57 luqui I claim that "extends" on data constructors keeps it from getting crufty
23:58 luqui but read on
23:58 dudley_ Every time I see "extends" now I think of Java's generics. And then try not to vomit.
23:59 * dudley_ reads on

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs