Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-06-24

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:11 Odin- joined perl6
00:54 FurnaceBoy is now known as FB|afk
01:02 svnbot6 r10869 | fglock++ | v6.pm - fix parser: '->' is not an operator; updated TODO
01:05 weinig is now known as weinig|sleep
01:08 Stoffie joined perl6
01:13 Snoopa joined perl6
01:20 shachaf joined perl6
01:24 buetow_ joined perl6
01:26 dasein joined perl6
01:49 audreyt TimToady: should conditionals be able to take routine literals?
01:49 audreyt if $x sub ($y) { ... }
01:49 audreyt or is it only block literals (bare/pointy)?
01:50 audreyt I admit that "if $x sub" reads really weird
01:50 audreyt and "return" from within the sub is perhaps not as useful
01:50 audreyt so maybe limit it to block form? (that part is uncharted for now)
02:09 shachaf joined perl6
02:12 insulanus joined perl6
02:13 pdcawley joined perl6
02:14 neoesque joined perl6
02:15 Stoffie left perl6
02:20 meppl gute nacht
02:32 svnbot6 r10870 | audreyt++ | * unregister fps/HsSyck from userbase before ubilding to save trouble
02:35 svnbot6 r10871 | audreyt++ | * MenTaLguY noted that stm-retry-with.pl should join the threads
02:35 svnbot6 r10871 | audreyt++ |   on machines where the main thread wouldn't autowait for closed threads.
03:01 fglock joined perl6
03:03 fglock audreyt: ping
03:07 shachaf__ joined perl6
03:09 shachaf joined perl6
03:10 audreyt fglock: ping
03:10 audreyt pong
03:11 fglock audreyt: I wonder when it's the time to release v6.pm - release early and people have too many expectations, release later and you get few developers
03:12 fglock it's easier to install from CPAN, too
03:13 obra fglock: release 0.01_01 to cpan?
03:13 audreyt have you solved the } ?
03:13 obra that marks it as a developer release
03:13 audreyt unbalanced brace problem
03:14 fglock I'm not sure - can't test it now
03:15 audreyt ok. once it's fixed it's of course good to release
03:16 FB|afk is now known as FurnaceBoy
03:16 audreyt just be ruthlessly honest in expectation management
03:16 audreyt and make sure nobody think it's anywhere near complete -- or even "most complete at the moment" -- and it should be fine :)
03:17 * audreyt spent the day porting CPAN to haskell
03:17 audreyt made some good progress
03:18 fglock yes - I'd like some help with the POD later - I'll work on it in the weekend
03:18 audreyt http://perlcabal.org/~audreyt/hackage/
03:18 audreyt there's a client now (cabal-install), and dependency resolver
03:18 audreyt need to figure out the equivalent to AtomPub API
03:19 obra did you and syntaxninja decide to use Atom as the native api?
03:19 audreyt but once it's there things should be much easier
03:19 audreyt no, we decide to use plain old filesystem.
03:19 obra cool :)
03:19 audreyt and .txt.gz files
03:19 fglock my windows installation is pretty broken - I can't even install my own modules
03:19 audreyt it's a port of olde CPAN
03:20 audreyt I happen to think that the ftp-based semantic is the right semantic
03:20 audreyt we can add discoverability and RDF on that as long as our URI space is clean
03:20 audreyt the previous prototype was using XML-RPC
03:20 audreyt I was like, horrified
03:20 audreyt so it's better now :)
03:20 * audreyt spreads the REST
03:25 obra :)
03:25 fglock does Moose handle multimethods?
03:29 audreyt I think you can hook C::M::P on it
03:29 audreyt not sure though, should talk to #moose
03:30 audreyt stevan: does it make sense to get a C::M::P bridge?
03:31 audreyt # http://search.cpan.org/dist/Class-Multimethods-Pure/
03:31 fglock yup - I'm looking at C::M::P too - it would be nice if Moose just supported most stuff, and v6.pm would be mostly a syntax layer
03:32 audreyt yeah
03:32 audreyt though multisubs (that's what C::M::P defines) is really orthogonal to methods
03:32 audreyt s/multisubs/multis/
03:33 audreyt i.e. you can have multi subs, multi methods, nonmulti subs, nonmulti methods
03:33 audreyt and the two dimensions are largely orthogonal
03:34 audreyt (methods always bias to the invocant; sub always consider no invocant; then if it's multi, the positionals are considered)
03:34 audreyt and that's all
03:34 audreyt so v6 can gen CMP coderefs and use them as moose methods
03:35 justatheory joined perl6
03:35 fglock would multimethod dispatching work with Moose?
03:36 fglock I should learn more about Moose internals
03:36 audreyt I don't see why not...
03:36 audreyt Moose inheritance is still recorded in @ISA
03:36 audreyt CMP looks at @ISA
03:36 audreyt so it should be fine
03:41 fglock I guess I'll make v6.pm intercept a 'use Test' and use perl5:Test/Test::More instead for now
03:44 fglock same with Data::Dumper
03:48 audreyt why not just write
03:48 audreyt use perl5:Test::More
03:48 audreyt if you mean that?
03:50 fglock in order to run the pugs test suite
03:51 audreyt oh. then I suggest you getting ext/Test/lib/Test.pm to work :)
03:52 audreyt if you pass all sanity tests, Test.pm should Just Work
03:52 nperez joined perl6
04:01 fglock sleep &
04:02 fglock left perl6
04:11 SamB joined perl6
04:28 shachaf_ joined perl6
04:33 audreyt ingy: can we get a Module::Compile release out of your repo
04:33 audreyt for fglock's v6 to depend on?
04:35 audreyt I just fixed the } block problem caused by the original validator block in conjunction with do blocks in user code
04:35 svnbot6 r10872 | audreyt++ | * Module::Compile - sync against ingy's repo.  This version now works with v6.pm.
04:35 audreyt so would be nice to have a release
04:39 audreyt that's r2849 at your http://svn.kwiki.org/ingy/Module-Compile repo
04:39 svnbot6 r10873 | audreyt++ | * Module::Compile - ascii art ;)
04:55 svnbot6 r10874 | audreyt++ | * restore parsing for nested => after the state-FIRST hack
05:08 audreyt ok, now that the state() regression is gone, we can roll pre1.
05:12 audreyt changes topic to: Please test pre1: http://pugs.blogs.com/pre1/Perl6-Pugs-6.2.12.tar.gz | paste: http://sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org
05:13 audreyt please give http://pugs.blogs.com/pre1/Perl6-Pugs-6.2.12.tar.gz a try if you have some spare cycles :)
05:13 * audreyt waves and goes sleeping &
05:40 FurnaceBoy is now known as BeetleBoy
05:55 QtPlatypus joined perl6
06:17 scook0 joined perl6
06:53 insulanus is now known as insulanus|zZz
07:06 visq joined perl6
07:25 Aankhen`` joined perl6
07:37 dduncan fyi, I have noticed the pre1 and downloading it ... will start to make tonight, though smoke may wait for tomorrow
07:42 drbean_ is now known as drbean
07:47 elmex joined perl6
07:50 Aankhen`` Is it really necessary to recompile a bunch of Haskell modules for `make install`? :-(
07:57 kane_ joined perl6
08:09 azuroth joined perl6
08:10 azuroth hey-yo
08:27 iblechbot joined perl6
08:44 lisppaste3 joined perl6
09:23 dduncan Aankhen, I notice that many 'make' commands trigger what looks like a recompilation, but I think they just skip over things already compiled, so it doesn't last long; this would actually be a compilation if you said make smoke or make install without saying 'make' first
09:24 ArthurBrazil left perl6
09:25 dduncan left perl6
09:45 szbalint joined perl6
09:53 drrho joined perl6
09:55 drrho left perl6
09:58 Aankhen`` ddun: Okay.
09:58 Aankhen`` Bleh.
10:16 cognominal joined perl6
10:20 cognominal joined perl6
10:39 chris2 joined perl6
10:44 prefiks joined perl6
11:05 buetow joined perl6
11:13 christopher joined perl6
11:21 jiing joined perl6
11:26 DaGo joined perl6
11:52 iblechbot joined perl6
11:57 visq joined perl6
12:10 bjoern_ joined perl6
12:10 bjoern_ is now known as DEpwnsSE
12:26 Odin- joined perl6
12:31 Odin- joined perl6
12:45 chris2 joined perl6
12:51 buetow joined perl6
13:01 rashakil__ joined perl6
13:04 weinig|sleep is now known as weinig
13:33 lollan joined perl6
13:46 stevan audreyt: C::M::P + Moose would be a nice thing
13:46 stevan it does not require any work even
13:46 stevan as you said
13:46 stevan however,.. C::M::P might need a little work, I am not sure what state luqui left it in
13:47 stevan and it should probably be hacked to support ->does() as well
13:53 audreyt aye
13:53 audreyt though CMP doesn't do the specced distance dispatch
13:53 stevan hmm
13:54 audreyt but otoh, the interaction between distance dispatch and casting and etc is still unresolved
13:54 stevan C::M?
13:54 stevan Damian's module
13:55 stevan Moose should play well with anything
13:55 stevan well,.. anything that plays well with Pure Perl 5
13:58 stevan bbiab, gotta go buy socks for YAPC
14:05 azuroth ...
14:16 ZuluOne Does YAPC have any feet to put them on?
14:29 nperez joined perl6
14:32 justatheory joined perl6
14:39 mako132_ joined perl6
14:46 xerox_ joined perl6
15:01 xerox_ is now known as xerox
15:06 gaal joined perl6
15:13 mako132_ joined perl6
15:18 DaGo joined perl6
15:41 mugwump joined perl6
15:52 nothingmuch joined perl6
16:06 justatheory joined perl6
16:06 insulanus|zZz is now known as insulanus
16:07 christopher joined perl6
16:08 audreyt wow, it's amazing
16:08 audreyt those Diebold ATM machines
16:09 audreyt it took my card, displayed a Win32 segfault message, then rebooted into Tivoli
16:09 audreyt then rebooted again, then shut itself down
16:09 * audreyt is now pennyless ;)
16:12 bpederse__ joined perl6
16:34 nothingmuch audreyt: will YAML::Syck ever support !perl/code ?
16:35 macroron joined perl6
16:37 audreyt nothingmuch: hack it in?
16:38 nothingmuch audreyt: how?
16:38 audreyt you are now committer to http://svn.openfoundry.org/perlsyck/
16:39 audreyt by line 568
16:39 audreyt perl_syck.h
16:39 audreyt handle the CV case
16:39 audreyt see Storable for example and FreezeThaw
16:39 audreyt I need to run now
16:39 nothingmuch okay
16:39 nothingmuch i think i'll manage from there
16:39 nothingmuch thanks
16:39 audreyt np :)
16:39 audreyt nothingmuch++
16:40 nothingmuch http://nothingmuch.woobling.org/Class-Workflow/t/example.yaml
16:40 nothingmuch =)
16:40 putter joined perl6
16:40 mako132_ joined perl6
16:41 putter audreyt: ping?
16:41 audreyt putter: pong
16:41 audreyt what's up?
16:41 nothingmuch audreyt: can you also make me comaint?
16:41 nothingmuch i want to release Class::Workflow today
16:42 putter Boston perlmongers would normally meet the 11th, but could shift, or schedule a social.   Any interest in doing a talk, or lightning?
16:42 nothingmuch and if i finish i will release YAML::Syck dev first
16:42 audreyt putter: both is fine
16:42 putter hate to cut in on hackathon time...
16:42 audreyt nod
16:43 audreyt I'm willing to give a talk, maybe on deploying perl6
16:43 audreyt I need to run off though
16:43 audreyt so mail me with potential dates?
16:43 audreyt nothingmuch: you are now comaint
16:43 putter sometime midweek, say 5th?  any constraints?
16:44 putter re run off, k, touch base later
16:46 Aankhen`` joined perl6
16:48 Ymmv joined perl6
16:55 nothingmuch audreyt++
16:55 nothingmuch thanks
17:05 Limbic_Region joined perl6
17:06 nothingmuch joined perl6
17:07 hcarty joined perl6
17:13 DEpwnsSE is now known as bjoern_
17:24 nothingmuch hmm
17:25 weinig_ joined perl6
17:28 nothingmuch YAML and YAML::Sick aren't 100% consistent about !perl/Foo 'bar'
17:28 nothingmuch YAML makes 'bar' into a scalar ref and blesses that into Foo
17:28 nothingmuch YAML::Syck ignores the tag
17:28 nothingmuch and makes it just 'bar'
17:29 nothingmuch which should it be?
17:29 xerox nothingmuch - What are those .xs files?
17:29 ruz joined perl6
17:30 nothingmuch xerox: .xs is C with preprocessing to make something that can interface with perl space
17:30 nothingmuch "X subs" i think
17:30 xerox Ah, perl space.
17:34 hcarty Is perl5 embedding working properly in the pre1 release?  I can call routines in perl5 modules, but when I try to create an object (ex CGI.new) I get an error
17:36 pasteling "hcarty" at 70.108.201.66 pasted "perl5 OO error" (7 lines, 132B) at http://sial.org/pbot/17945
17:40 hcarty I'm not sure if it's a problem with my build, or something on my system.  I've had the same problem with all of my recent attempts at building pugs
17:40 hcarty s/building/using/
18:03 audreyt hcarty: hi
18:03 audreyt ah. the metaobject havn't been updated
18:03 audreyt can you write a test for it in t/perl5/?
18:03 audreyt I'll fix it now
18:04 audreyt (and do you have a commit bit yet, if not, what's your email addr?)
18:04 hcarty I'll do my best - I do not have a commit bit.  [email@hidden.address]
18:05 audreyt you do now. welcome aboard!
18:05 audreyt add yourself to AUTHORS first to test commit
18:05 hcarty Thank you!
18:05 audreyt :)
18:06 wilx joined perl6
18:10 * nothingmuch waits for big explosions
18:13 audreyt nothingmuch: both Y.pm and Y::S are wrong
18:13 audreyt this is right
18:13 audreyt http://pyyaml.org/wiki/PerlTagScheme
18:13 nothingmuch audreyt: okay, i will maybe fix it later
18:13 nothingmuch that said
18:13 chris2 joined perl6
18:14 nothingmuch how does aliasing work with syck?
18:14 Aankhen`` joined perl6
18:15 nothingmuch i'm seeing *tag = '\0' which i really don't understand
18:15 nothingmuch hmm
18:15 nothingmuch i'm guessing this is not what I want, right?
18:16 audreyt right
18:16 audreyt aliasing works by anchors
18:16 nothingmuch well, let's TODO that for now
18:16 nothingmuch does the emitter automatically add anchors for us?
18:17 nothingmuch i don't see meaningful mentions of anchor format, etc
18:17 nothingmuch wow
18:17 nothingmuch compiles
18:18 nothingmuch # Test 11 got: "{ \"foo\" . shift  }" (t/2-scalars.t at line 31)
18:18 nothingmuch #    Expected: "{ \"foo\" . shift }"
18:18 nothingmuch WEEEEEEEEEEEEEEEE
18:18 nothingmuch now for eval
18:18 nothingmuch uh, wait
18:18 nothingmuch sorry, wrong test
18:18 nothingmuch # Test 9 got: "--- !perl/code: \"{\\n    'bar';\\n\\\n}\\0\"\n" (t/2-scalars.t at line 21)
18:19 nothingmuch #   Expected: "--- !perl/code: '{ \"bar\" }'\n"
18:19 nothingmuch but that's still good ;-)
18:19 audreyt emitter autoadds anchors
18:19 audreyt don't worry about that
18:19 nothingmuch goody
18:19 PerlJam Any of you guys know of an opensource javascript pretty printer?
18:19 audreyt anchor resolution for cyclics is also auto
18:19 PerlJam I've got some horrendous javascript to wade through and it would be better if it weren't so horrendous :)
18:20 audreyt http://www.jcay.com/javascript-code-improver.html
18:20 audreyt not free software
18:20 PerlJam yeah, that seems to the where everyone points.
18:20 PerlJam unfortunately, I'm not running windows.
18:21 nothingmuch audreyt: how should i pretty print string storage, wrt \n, | and so forth?
18:23 audreyt use one of the styles
18:23 nothingmuch i mean "what is the name of a function that could help me" ;-)
18:23 audreyt in emitting
18:23 audreyt select one of the scalar_2quote
18:23 audreyt scalar_none
18:23 audreyt etc
18:23 nothingmuch SCALAR_QUOTED etc?
18:23 nothingmuch okay
18:28 lisppaste3 joined perl6
18:28 nothingmuch oi oi oi
18:28 nothingmuch the deparsing works
18:28 nothingmuch but i can't emit it right
18:31 nothingmuch ah
18:31 nothingmuch it was the length
18:35 ludan joined perl6
18:39 nothingmuch well
18:39 nothingmuch appearantly it roundtrips
18:39 nothingmuch i haven't found a good style though
18:39 nothingmuch maybe you can help me later
18:39 audreyt commit!
18:40 nothingmuch tests fail
18:40 nothingmuch (my new tests)
18:40 nothingmuch is that OK?
18:40 audreyt sure
18:40 hcarty If I want to use svk to work on pugs, is the http://svn.openfoundry.org/pugs url the correct one to mirror?  I've only ever used svk for local/personal projects.  That's what it looks like in pugs::hack, but I want to be sure before I let the lengthy sync process begin
18:40 audreyt yes.
18:40 obra yes.
18:40 audreyt and if you want to you can sync-to-head
18:40 audreyt ah, the svk vendor is here
18:40 audreyt :D
18:41 nothingmuch audreyt: comitted
18:41 nothingmuch oh crap
18:41 nothingmuch i forgot to up the plan number
18:42 nothingmuch there
18:46 nothingmuch i should poke around line 183, right?
18:48 nothingmuch hmm
18:48 nothingmuch i can'
18:48 nothingmuch t finish this tonight
18:48 nothingmuch i am invited to dinner
18:48 nothingmuch then i have to pack and tomorrow i fly
18:48 nothingmuch but it's a long flight =)
18:49 nothingmuch if you want to help me save time (anyone) /msg me or nopaste me links to some docs that I might discover are useful later
18:49 nothingmuch besides Storable.xs
18:49 nothingmuch so that i can prefetch
18:49 nothingmuch ciao!
18:51 bpederse__ left perl6
19:02 weinig__ joined perl6
19:14 svnbot6 r10875 | hcarty++ |  r5@laptop44:  hcarty | 2006-06-24 15:11:38 -0400
19:14 svnbot6 r10875 | hcarty++ |  Added myself to AUTHORS
19:16 hcarty Rock - I finally got it work correctly
19:27 audreyt woot
19:29 wolverian I thought svnbot filtered the commit metadata there nowadays
19:31 spinclad depends on how you send it, i think -- 'svk push' tends to do this, iirc
19:32 audreyt svk push --verbatim doesn't do it
19:32 spinclad right, that's the magic word
19:34 spinclad btw, pre1 built and smoked here
19:34 wolverian ah. I have a direct mirror and my svk ci doesn't do it either here
19:34 wolverian but it used to, which makes me think it wasn't a direct thingy.
19:34 wolverian or something. :)
19:35 spinclad but pirsmoke gave lots of complaints (no surprise i think)
19:36 audreyt yeah. sadly parrot doesn't have a sensible support for our new OUTER:: semantic
19:36 audreyt working on it, though
19:38 spinclad back later &  # food shopping and lunch
19:40 hcarty I will try to remember to use --verbatim for future commits
19:42 renormalist joined perl6
19:42 hcarty left perl6
19:43 audreyt ...and where is the test? ;)
19:44 hcarty joined perl6
19:52 renormalist Hi all! I just saw in old experimental perl6 code stuff like "sub my_substr ($str, ?$from = 0, ?$len = Inf)". Are these prepended '?' an old syntax for optional params written with appended '?' like "($from?, $len?)" (seen in S06)?
19:54 wolverian yes
19:56 renormalist is the old syntax still legal?
19:56 szbalint no
19:56 renormalist m'kay
19:56 xerox Now let's add ! to mandatory params :-)
19:58 renormalist This appending is better than prepending, so it doesn't optically conflict  with twigils. nice
19:58 wolverian on the other hand, it increases visual lookahead. it's not too bad though.
20:09 Qiang joined perl6
20:26 kanru joined perl6
20:35 renormalist joined perl6
20:41 * renormalist 's network lags a bit
20:53 hcarty For "use perl5:CGI" (or any other perl5 module) should both "my $q = new CGI" and "my $q = CGI.new" work in pugs?
20:53 hcarty And is the proper way to test this with a try {} ?
20:57 Ymmv joined perl6
21:08 macroron joined perl6
21:30 svnbot6 r10876 | hcarty++ | Added a test for using perl5 class modules
21:32 hcarty left perl6
21:33 svnbot6 r10877 | hcarty++ |  r9@laptop44:  hcarty | 2006-06-24 17:31:25 -0400
21:33 svnbot6 r10877 | hcarty++ |  Forgot to add svn-properties to last commit
22:00 dasein joined perl6
22:00 colomon joined perl6
22:02 nothingmuch uhg
22:03 colomon Hi all.  Just tried pre1.  make works fine, make test has one error, but make install fails with ghc-6.4.2: unknown package: fps-0.7
22:04 colomon platform is Suse linux on X86-64.
22:12 svnbot6 r10878 | renormalist++ | cperl-mode.el: imenu index recognizes various multi|proto sub(method) variants
22:28 ingy hola
22:32 audreyt colomon: roger, will fix
22:32 audreyt which error was in the maketest?
22:34 nothingmuch audreyt: BLAM
22:35 nothingmuch releasing YAML-Syck-0.46_01 ?
22:35 audreyt sure
22:35 audreyt go ahead
22:36 nothingmuch i don't need to bump the JSON version, right?
22:36 audreyt right
22:40 nothingmuch how do i make meta.yml with MI?
22:40 nothingmuch ah, metafile
22:40 nothingmuch huh?! it's not creating
22:42 audreyt rm -rf inc first
22:42 nothingmuch ah
22:42 nothingmuch for author vs. user behavior?
22:44 nothingmuch ugh, failing tests
22:47 nothingmuch should i check inc in?
22:48 nothingmuch t/leak................Use of inherited AUTOLOAD for non-method YAML::Syck::Load() is deprecated at t/leak.t line 26.
22:49 nothingmuch i think ti's due to DL_NOLAZY
22:49 nothingmuch aye
22:49 nothingmuch *sigh*
22:52 FurnaceBoy joined perl6
22:54 nothingmuch oh, sorry, that was stupid
22:54 nothingmuch anyway, i'm not checking in inc/
22:54 nothingmuch because I doubt it should even be in svn
22:54 nothingmuch and since i see no tags/ either, i'm not tagging
22:54 nothingmuch YAML-Syck-0.46_01 uploaded to the CPAN
22:55 nothingmuch wish me luck
22:57 Ymmv joined perl6
23:01 Khisanth joined perl6
23:13 dduncan joined perl6
23:14 dduncan I have now begun to smoke pre1 ... est 2:30 to completion
23:14 dduncan er, 2h,30m
23:33 rashakil joined perl6
23:36 audreyt hm, coding up cabal-install in Haskell is quite nice
23:36 audreyt it helps that I can port all the CPANPLUS algorithms ;)
23:36 * audreyt verifies again that perl is wonderful for exploratory I-know-nothing-about-the-domain programming
23:37 audreyt ...and Hs is wonderful for I-already-know-what-I-am-doing-just-do-it
23:37 stevan audreyt: are you in chicago yet?
23:37 audreyt http://perlcabal.org/~audreyt/hackage/ now runs, whee
23:37 stevan :)
23:38 audreyt (the equivalent to PAUSE is being worked out... eta 1-2 hrs)
23:38 stevan Haskell,.. it's the new Perl
23:38 audreyt :D
23:38 audreyt stevan: no, going to fly in tomorrow morning
23:38 stevan ah
23:38 stevan cool
23:38 stevan I arrive tomorrow night, with nothingmuch and robkinyon
23:38 audreyt cool
23:39 stevan should be a very fun hackathon this year
23:39 audreyt indeed
23:39 audreyt -O9fun
23:39 stevan :)
23:39 stevan -O11fun
23:39 stevan mine goes up to 11
23:42 nothingmuch -O1.43e+471fun
23:42 Ymmv joined perl6
23:42 nothingmuch that's like, more than google fun
23:42 nothingmuch HUZZAAAAH!
23:42 stevan -OInffun
23:42 nothingmuch now you've ruined the joke
23:42 stevan the fun *NEVER* stops!
23:42 nothingmuch =)
23:43 nothingmuch WOW
23:43 nothingmuch i found a spoon!
23:48 nothingmuch almost done packing
23:48 nothingmuch i wonder what's left
23:49 dduncan unpacking
23:50 buetow joined perl6
23:51 dduncan something I've been wondering, which is practical for the problem domain I'm addressing ... databases
23:51 dduncan I would like to effectively use a database engine as a compilation target for a certain subset of Perl ...
23:52 dduncan so that certain things which would run well in a database are done there
23:53 dduncan ideally, this may take the form of a macro-like feature where one can declare a macro that says that all sub-expressions of the call to said macro become part of the macro
23:53 dduncan afaik, macros in perl 6 can take Perl ASTs as input, but I'm wondering if ...
23:54 nothingmuch this is probably better done as a theoretical optimizer plugin
23:54 nothingmuch that looks for staticly typed code
23:54 dduncan that is very possible
23:54 nothingmuch which is definitely database backed
23:54 nothingmuch that way the scale can be larger
23:54 dduncan I was very much thinking that what I wanted to do is best in the domain of an optimizer
23:54 nothingmuch and the user interfacing is zero
23:55 dduncan effectively what I wanted to do is take what looks like multiple invocations of the database in user land and turn it into fewer or different actual invocations behind the scenes
23:55 nothingmuch as it stands right now, it looks like the optimziation framework will be flexible enough to give you that
23:55 nothingmuch once it exists =)
23:55 nothingmuch aye
23:55 nothingmuch also, runtime checks can get out of the picture
23:55 nothingmuch and reachability analysis can do smart prefetching
23:56 nothingmuch so it really extends farther than just drop in replacement of certain opcodes =)
23:56 nothingmuch that said, you can probably still pull it off with overloading (the punt to database feature)
23:56 dduncan eg, if users say $foo = select_table( 'foo'); $bar = select_table( 'bar' ); $baz = Relation::table_join( $foo, $bar ); ...
23:56 dduncan that would behind the scenes turn the table join into a db-side op rather than a perl-side op
23:57 dduncan unoptimized, the select_table(), each one, would be a separate db invocation
23:57 nothingmuch have you seen DBIx::Class?
23:57 nothingmuch it's nearly like that
23:57 nothingmuch except it's in perl 5
23:57 dduncan sure
23:57 nothingmuch so are $bar and $foo thunks?
23:58 dduncan but what I'm looking to do, unlike all the other layers out there, is that people can just write normal Perl and have it appropriately rearranged without them having to do anything special
23:58 nothingmuch in dbic they represent resultsets, which conveniently doesn't say if they're materialized or not, but does know how to generate a select for them =)
23:58 dduncan $bar and $foo would be Relation variables
23:58 dduncan a Relation variable is essentially a a set of hashes
23:58 nothingmuch Perl 6 will let you overload more cleanly
23:58 nothingmuch since %, @ etc become more like operators
23:58 nothingmuch that layer will be a lot nicer to work with
23:59 nothingmuch i thought you were trying to specify e.g. a loop block
23:59 dduncan eg, its like what you get when, in DBI you say $sth->fetch_arrayref({});
23:59 nothingmuch and then shove the loop block into a select where clause
23:59 nothingmuch anyway, as nice as it is to talk
23:59 nothingmuch i really have to stfu
23:59 nothingmuch and finish =)
23:59 dduncan sure
23:59 nothingmuch will you be at yapc?

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

Perl 6 | Reference Documentation | Rakudo