Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-10-22

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
06:28 ilogger starts logging #perl6 at Sat Oct 22 06:28:54 2005
06:28 ilogger has joined #perl6
06:29 autrijus yeah
06:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
06:30 geoffb Has an odd visual impact.  Mildly signifies that a | is somehow less than a $ . . . .
06:30 * Khisanth waits for article titled "How to kill with a Sigil"
06:30 lisppaste3 has joined #perl6
06:31 autrijus I sent the "sub Bool eqv (|T $x, |T $y) { ... }" suggestion to p6l.
06:31 * Khisanth notes that http://sial.org/pbot/perl6 is back as well
06:31 Khisanth in place of ¢T ?
06:33 autrijus yeah
06:33 autrijus if we are to have tyvar, better have something easy to type.
06:33 autrijus (imvvho.)
06:33 * Khisanth nods
06:34 Khisanth ¢ requires hiting 4 keys here
06:34 autrijus yup
06:34 autrijus I'm seeing ¢ the same way as haskell people and scheme people use λ
06:34 autrijus PLT scheme even recognizes the λ form
06:34 Khisanth even with the compose thingy it's still 3 keys compared to 2
06:35 autrijus but it's there just so pretty papers can be written
06:35 autrijus in everyday use, it'd be the easy to type equivalent.
06:37 jql methinks I'll be finding it unnecessary in everyday usage
06:39 jql and :: required hitting 3 keys. :)
06:39 geoffb To sleep or to hack, that is the question . . .
06:39 geoffb Sleep is in the lead, at the moment
06:40 * jql avoids sleep on the weekend -- that's what work is for
06:41 Cryptic_K has quit IRC (Read error: 104 (Connection reset by peer))
06:54 luqui has joined #perl6
06:54 luqui has quit IRC (Client Quit)
07:00 Aankhen`` has joined #perl6
07:00 justatheory has quit IRC ()
07:45 iblechbot has joined #perl6
08:08 gaal aloha!
08:11 iblechbot has quit IRC (Read error: 110 (Connection timed out))
08:28 elmex has joined #perl6
08:33 tehmaze has quit IRC ("leaving")
09:13 r0nny has joined #perl6
09:13 r0nny has quit IRC (Client Quit)
09:13 r0nny has joined #perl6
09:13 autrijus yo gaal
09:13 autrijus ooh, irc.pugscode.org back
09:13 * autrijus proceeds to upload new versions of XUL slides
09:13 autrijus fixed the multi-xul problem
09:13 autrijus lucs++
09:14 autrijus so they are now all one files each
09:14 r0nny morning
09:14 autrijus hi r0nny
09:14 r0nny is there a way, to use c++ libs with pugs ?
09:15 autrijus you can use haskell FFI and link it statically
09:15 autrijus or use Parrot NCI to call it
09:16 autrijus or compile to JS and link Spidermonkey with C++ libraries
09:16 autrijus depends on what specific lib you want to use I guess
09:26 iblechbot has joined #perl6
09:28 r0nny quit hw problems
09:28 r0nny has quit IRC ("hw problems")
09:33 r0nny has joined #perl6
09:37 larsen has joined #perl6
10:02 cognominal has quit IRC (Remote closed the connection)
10:02 stef_ has quit IRC (Remote closed the connection)
10:02 cognominal has joined #perl6
10:09 G2 has joined #perl6
10:09 r0nny_ has joined #perl6
10:26 r0nny has quit IRC (Read error: 110 (Connection timed out))
10:26 ruz has joined #perl6
10:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
10:30 lisppaste3 has joined #perl6
10:44 autrijus NPW talk going to be on air in... 30mins
10:45 autrijus slightly updated slides are on http://pugscode.org/
10:45 xerox Which one?
10:47 autrijus http://pugscode.org/euroscon/pugs.xul
10:47 autrijus the other ones are also condensed into single xul
10:49 Juerd autrijus: feather now accepts mail for perlcabal.org, by the way
10:49 Juerd autrijus: Sorry it took so long :)
10:50 r0nny_ is now known as r0nny
10:50 Juerd (This was a few days ago, but I hadn't told you yet)
10:50 rafl_ Cool.. 8-)
10:51 Juerd I wonder what keeps fucking up utmp
10:51 Juerd Clearly more users are logged in than are listed in utmp
10:51 autrijus I'll be off net...
10:51 * rafl_ also wants the slides of the other talks. Especially the UTF8 and SVK one..
10:51 autrijus wish me luck :)
10:51 xerox Have fun autrijus!
10:52 Juerd autrijus: Good luck!
10:52 svnbot6 r7696 | autrijus++ | * Slight tweak for Pugs.Compile: s/CompMonad/Comp/g
10:52 Juerd Heh, a last minute pugs commit during the last minute slide adjustments? :)
10:53 evalbot_7695 has quit IRC (Remote closed the connection)
10:54 evalbot_7696 has joined #perl6
11:03 xerox has quit IRC ()
11:33 cognominal |T for a type variable will make difficult some future arithmetic on types.
11:34 cognominal Or blank would have to be significant. That is  | T possibly meaning something different from |T
11:35 cognominal I like significant spaces  because that leaves more space (pun intended) for more grammar
11:55 xerox has joined #perl6
12:04 elmex has quit IRC ("leaving")
12:16 wolverian hmm, ¢ is 3 keys here; altgr+shift+e. it's not that hard to type really. why don't all keyboards have altgr (or similar)?
12:24 jabbot has joined #perl6
12:27 * Aankhen`` goes to sleep.
12:27 Aankhen`` has quit IRC ("Look ma, no script!")
12:32 clkao rafl_: the svk talk is on opensource.fotango.com/~clkao/svk-intro/
12:35 autrijus cognominal: we have signif whitespace anyway.
12:35 autrijus compare:
12:36 autrijus %hash  vs % hash
12:53 cognominal yea but so far we are ashamed of it instead of claiming it an asset
12:53 penk has quit IRC (Read error: 110 (Connection timed out))
12:56 autrijus well, it's nothing to be ashamed of
12:56 autrijus it's an asset :)
12:56 autrijus also
12:56 autrijus &code vs  & code
12:56 autrijus which is very close to |type vs | type
13:02 integral pity prefix * is already used
13:03 xerox Use µ :)
13:03 integral ∀ or a capital lambda would make some sense ;)
13:03 xerox Ø ? :)
13:14 cognominal btw, on X window where is the doc about typing unicode chars?
13:19 autrijus docs/quickref/unicode ?
13:26 oylenshpeegul has joined #perl6
13:26 r0nny yo
13:27 r0nny does someeone have a getopt imp for perl6 ?
13:35 autrijus no, there's some test in ext/Getopt-Long
13:35 autrijus takers welcome
13:44 oylenshpeegul has left
13:51 evalbot_7696 has quit IRC (Remote closed the connection)
13:51 evalbot_7697 has joined #perl6
13:53 svnbot6 r7697 | iblech++ | * Usual svn props.
13:53 svnbot6 r7697 | iblech++ | * docs/quickref/unicode: Added some missing Vim ^K digraph sequences.
13:53 scook0 has quit IRC ("Leaving")
13:56 gilimanjaro has joined #perl6
14:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
14:30 lisppaste3 has joined #perl6
14:35 chandler has left
14:39 elmex has joined #perl6
14:44 stevan_ has joined #perl6
14:45 * stevan_ mumbles about crappy IRC clients ........
14:49 * autrijus mumbles about incredibly crappy wifi
14:49 autrijus stevan_: I'm reading PickAxe :)
14:49 stevan_ autrijus!
14:50 stevan_ autrijus: great book, I think i have a first edition around here somewhere
14:50 * stevan_ went out and bought it after reading pragmattic programmers
14:50 stevan_ autrijus: I have been giving some thought to the metamodel/container-type intregration
14:51 autrijus yes?
14:51 stevan_ well I have some questions
14:52 stevan_ unboxed types will be implented in the interpreter/compiler right?
14:53 stevan_ and the boxed versions will be implemented in the metamodel, correct?
14:53 autrijus yes and yes.
14:53 autrijus (wifi reset every 5min)
14:53 stevan_ autrijus: so, the metamodel needs to be written using the unboxed types
14:54 autrijus that is most likely the case, yes
14:55 stevan_ will we want to wrap the metamodel after bootstrapping, so it deals with boxed types? or will be have automagic boxing?
14:57 stevan has quit IRC (Read error: 110 (Connection timed out))
14:57 stevan_ is now known as stevan
14:58 autrijus stevan: automagic?
14:58 stevan automatic (with a little magic sprinkled on it)
14:59 autrijus there needs to be a wrapping there that exposes |class into |Class
14:59 autrijus just so you can augment it
14:59 autrijus er, I mean ::class and ::Class.
15:00 autrijus that part needs to be done by the runtime, so the compile will assume ::Class is already there
15:01 stevan hmm, so we will really need to wrap the metamodel post-boostrapping then
15:01 autrijus yes, I think that is unavoidable
15:01 stevan ok
15:03 justatheory has joined #perl6
15:04 DaGo has joined #perl6
15:04 autrijus hi DaGo
15:05 DaGo hi autrijus
15:05 stevan autrijus: I am going to experiment with this using fglock's containers
15:05 autrijus greeitings from NPW
15:05 autrijus 1st day of conf just ended
15:05 autrijus so wifi may go away anytime
15:05 autrijus stevan: cool!
15:06 stevan fglock__: ping
15:07 autrijus bbiab... &
15:16 justatheory has quit IRC ()
15:16 elmex has quit IRC ("weg: bani vom bahnhof abholen")
15:40 featherpaste "gaal" at 192.115.25.249 pasted "p5 emb warnings. linux / 6.4.1-1" (12 lines) at http://feather.perl6.nl:8888/2
15:52 rafl_ clkao: Thanks.
15:53 gaal eep, now the build hangs on Compile.Run. I think this may be a problem with hs-plugins though. :/
15:53 gaal whoop, no, just got freed.
15:55 r0nny re
15:57 gilimanjaro has left
16:09 rafl_ clkao: What does the graph in slide 24b show?
16:11 Limbic_Region has joined #perl6
16:16 ruz has quit IRC (Read error: 110 (Connection timed out))
16:19 Blicero has quit IRC (Remote closed the connection)
16:20 Blicero has joined #perl6
16:20 Limbic_Region_ has joined #perl6
16:21 Limbic_Region has quit IRC (Nick collision from services.)
16:21 Limbic_Region_ is now known as Limbic_Region
16:21 saorge has joined #perl6
16:21 saorge has quit IRC (Read error: 104 (Connection reset by peer))
16:21 saorge has joined #perl6
16:25 ruz has joined #perl6
16:30 stevan has quit IRC ("This computer has gone to sleep")
16:36 mtve has quit IRC (Read error: 110 (Connection timed out))
16:39 Limbic_Region For anyone who wasn't aware - Dan has posted a Parrot post mortem
16:39 Limbic_Region http://www.sidhe.org/~dan/blog/
16:47 wilx has quit IRC (Read error: 110 (Connection timed out))
16:48 justatheory has joined #perl6
16:50 fglock has joined #perl6
16:50 fglock stevan: pong
16:51 Limbic_Region_ has joined #perl6
16:51 Limbic_Region has quit IRC (Nick collision from services.)
16:51 Limbic_Region_ is now known as Limbic_Region
17:04 ajs_home has quit IRC (Read error: 104 (Connection reset by peer))
17:11 Limbic_Region has quit IRC ("tiuq\")
17:27 gilimanjaro has joined #perl6
17:29 gilimanjaro has quit IRC (Client Quit)
17:29 SamB has quit IRC (Read error: 104 (Connection reset by peer))
17:32 ruz has quit IRC (Connection timed out)
17:36 stevan has joined #perl6
17:36 SamB has joined #perl6
17:40 ruz has joined #perl6
17:43 mtve has joined #perl6
17:48 gilimanjaro has joined #perl6
17:49 justatheory has quit IRC ()
17:51 fglock stevan: pong
17:55 fglock has left
17:55 gilimanjaro has quit IRC ()
18:11 ruz has quit IRC (Read error: 110 (Connection timed out))
18:11 ruz has joined #perl6
18:21 metaperl has quit IRC ("KVIrc 3.2.0 'Realia'")
18:26 DaGo has quit IRC ()
18:26 gilimanjaro has joined #perl6
18:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
18:30 lisppaste3 has joined #perl6
18:31 wilx has joined #perl6
18:31 gilimanjaro has quit IRC (Client Quit)
18:48 stevan fglock__: pong
18:50 Odin-LAP has joined #perl6
18:54 gilimanjaro has joined #perl6
18:56 gilimanjaro has quit IRC (Client Quit)
19:13 gilimanjaro has joined #perl6
19:22 oylenshpeegul has joined #perl6
19:25 oylenshpeegul has left
19:32 stevan autrijus: ping
19:32 autrijus stevan: pong!
19:33 stevan autrijus: some questions re: the container types
19:33 stevan ifyou have a moment
19:33 autrijus sure
19:33 stevan so I am trying to make a list of the native "things" we will need
19:33 autrijus ok
19:33 stevan that the interpreter will need to support
19:33 stevan and I am using fglocks list to start with (from Perl6::Value)
19:34 autrijus ok
19:34 stevan my question is.. how do those (Num, Int, Bit, List, etc) fit with the Scalar, Array Hash of the Perl6::Container group
19:34 stevan Are the Values just things which can be stored into a Cell?
19:37 stevan and will all the Value types be subtypes of Scalar? or is Scalar just another type?
19:37 autrijus ok
19:38 autrijus for a Scalar cell, yes, a value is just something that can be stored into it
19:38 autrijus a Scalar is an object type.
19:38 stevan boxed, unboxed, or either?
19:38 autrijus either.
19:39 evalbot_7697 has quit IRC (Remote closed the connection)
19:39 evalbot_7698 has joined #perl6
19:39 stevan and the Cell is the native type from which Scalar gets it's implementation?
19:40 luqui has joined #perl6
19:40 stevan when you say "Scalar is an object type", do you mean a boxed type?
19:40 autrijus yeah, Cell is not exported
19:40 stevan hey luqui
19:40 autrijus yes, Scalar is a boxed type.
19:40 stevan there is no such thing as an unboxed Scalar right?
19:41 luqui hi stevan
19:41 stevan do unboxed types have methods? like num.to_str()? or is that sugar for Num.new(num).to_str()?
19:42 autrijus there is no such thing as an unboxed scalar.
19:42 stevan meaning we autobox it if you start "poking" it?
19:42 luqui I think they do...
19:42 autrijus autoboxing is on by default, that I'm pretty sure.
19:42 svnbot6 r7698 | autrijus++ | * remove the "t e s t" directory for testing as it gives
19:42 svnbot6 r7698 | autrijus++ |   sky problems on his osx, and we are not using them anyway.  
19:42 luqui but the autoboxing behavior is unspecced, and probably will remain so
19:42 autrijus yup.
19:42 stevan ok
19:42 stevan luqui: just to catch you up, I am trying to seperate the native types from the boxed types
19:43 gilimanjaro has left
19:43 stevan so that I can figure out where the metamodel fits in
19:43 luqui the unboxed types are there so we can make code that needs to run fast do so, so features on boxed types are allowed to be limited
19:43 luqui s/boxed/unboxed/
19:43 luqui heheh... including unboxed types in the metamodel could be... painful
19:44 stevan luqui: no, I need to build the metamodel out of unboxed types since the metamodel will provide the boxes themselves :)
19:45 luqui er, why?
19:45 stevan where are the boxes going to come from?
19:45 luqui where have they been coming from until now?
19:45 stevan if Array is a Role, then you need Roles before you have Array
19:45 * luqui would not consider unboxed types to be more "fundamental" than boxed types
19:45 stevan luqui: I have no idea :P
19:45 luqui instead, I consider them an optimization technique
19:46 autrijus we have a runtime. it provides certain stuffs natively.
19:46 autrijus we may choose to export those things into p6 land as unboxed types.
19:46 autrijus we also need to use them to implement the metamodel.
19:46 stevan I am assuming that the runtime provides a set of unboxed types
19:46 stevan then we implement the metamodel with them
19:46 autrijus those two are not identical
19:46 stevan then we make all the pretty boxes for the types
19:46 autrijus we can use some stuff from runtime that we don't expose
19:47 autrijus eg native "hash"
19:47 luqui ohh, assuming the implementation provides a set of unboxed types
19:47 stevan for the metamodel?
19:47 autrijus in the metamodel
19:47 luqui I get it
19:47 autrijus or we can also expose additional stuff we don't use in metamodel
19:47 stevan autrijus: why not an unboxed Map?
19:47 luqui I don't think that those are the same unboxed types as "int", "num", etc
19:47 autrijus like "complex"
19:47 Juerd Are unboxed types guaranteed to be available?
19:47 autrijus stevan: becasue it varies from runtime to runtime.
19:47 autrijus stevan: and because it's not partof spec.
19:47 Juerd Or can only those be used that actually exist on the target platform?
19:47 luqui because they will be different from implementation to implementation, they should be hidden from userland
19:47 stevan ah, the spec :)
19:48 autrijus Juerd: if the target platform has no native unboxed complex, we need to emulate them slowly.
19:48 luqui Juerd, they are always available, but they are not always guaranteed to be unboxed :-)
19:48 autrijus what luqui said.
19:48 Juerd I see
19:49 stevan autrijus, luqui: but can't we have a decent unboxed Map/Hash impl, just built on top of whatever the runtime supports?
19:49 luqui of course
19:49 stevan the only reason I wonder is that the metamodel relys heavily on hashes
19:49 luqui but the unboxed underbelly need not be seen by perl users, need it?
19:49 stevan luqui: I dont care either way :)
19:49 autrijus stevan: we can assume the runtime has a very fast hash/map.
19:50 stevan autrijus: ok
19:50 autrijus but the hash/map/dictionary thing operates differently on p6
19:50 autrijus unlike int or num which works pretty reliably
19:50 stevan ok
19:50 autrijus so it makes little sense to expose hash to userland.
19:50 stevan gotcha
19:50 autrijus :)
19:51 stevan now, what about code objects, they are a slightly different beast
19:51 * autrijus is, of all things, hacking darcs<->svk support with clkao.
19:51 luqui autrijus, interesting
19:51 * luqui is starting to dislike svk a little
19:51 luqui maybe I'm not using it correctly
19:51 stevan blasphemer!!!!!
19:51 autrijus luqui: how so?
19:52 luqui svk blame foo.pl      # all come up as my name
19:52 stevan luqui: cause you dah man!
19:52 luqui no, I don't mind that they all come up as me when I do svk praise :-)
19:52 clkao blame -x ?
19:52 stevan autrijus: I am wondering how unboxed Code objects interact with pads.
19:53 autrijus stevan: talk in code?
19:53 autrijus (and also, "unboxed code" as such is not really part of p6 spec.)
19:53 stevan I am not sure how to do that
19:53 stevan ok, then what will native executable chucks look like?
19:53 autrijus again, "unspecced"
19:53 stevan hmm
19:53 luqui clkao, no luck
19:54 autrijus luqui: svk blame //mirror/pugs/path/to/file
19:54 luqui autrijus, eeew, okay
19:54 autrijus luqui: unpleasant, I know.
19:54 autrijus should have a blame --upstream or something
19:54 stevan autrijus: well we can assume all runtimes provide some type of subroutine right?
19:55 stevan forget about how it is exposed to the user for now
19:55 luqui stevan, you mean closure?
19:55 stevan luqui: yes (i think)
19:55 clkao ah
19:55 luqui hmm.. I think we can assume that
19:55 luqui yes we can (because we are assuming continuation :-)
19:55 clkao was talking about proper merge traversal api so we will be able to do that
19:56 stevan what I am getting at is that I would like to be able to bind things to a subroutines lexical scope/execution context
19:56 stevan this would make the metamodel, and in particular the method "implementation" easier
19:56 ruz has quit IRC (Remote closed the connection)
19:57 luqui stevan, I don't quite follow
19:57 stevan luqui: we are deep in the bowels of the runtime,.. what do the closures look like?
19:58 luqui stevan, think perl 5
19:58 luqui that's what you get
19:58 stevan can I say: $my_closure.bind_to_env('$?SELF' => $obj);
19:58 stevan luqui: I know next to nothing about the bowels of p5
19:58 luqui the bowels of the p5 runtime is all in p5 userland
19:59 luqui however, a level of indirection will always get you what you want I think
19:59 luqui pass env as first parameter to sub
19:59 luqui bundle in the same object as the closure
19:59 stevan hmmm,. very LISPish
20:00 autrijus (we already do that for p5embed)
20:00 stevan well, is that going to the be the sub types responsibility? or is the runtime going to manage pads?
20:01 luqui ohhhh, stevan, you are wondering what is in the runtime interface
20:01 stevan luqui: yes, I care nothing for users :P
20:01 luqui I was actually approaching from the opposite direction, that you were in the guts of the runtime
20:01 luqui but you are actually the meat in the middle of the sandwich
20:01 stevan luqui: I am thinking from both ends sort of
20:02 luqui or jelly
20:02 luqui okay, I think that the runtime has to provide a closure with an env
20:02 stevan agreed
20:03 stevan does each closure mange the env? or does the closure ask the runtime for the current env?
20:03 stevan or does that not matter really
20:03 luqui "ask the runtime"?
20:03 stevan autrijus: thoughts?
20:03 stevan luqui: is it
20:03 stevan $closure.add_to_env('$value' => 1);
20:03 stevan or:
20:04 stevan $env.add('$value' => 1); $closure->($env)
20:04 stevan who manages the pads I guess
20:04 luqui oh, I think the runtime does
20:04 stevan ok
20:04 luqui because it knows more about how it can make that fast
20:05 luqui also more about closures behave...
20:05 luqui more about everything actually
20:05 luqui hmm
20:07 luqui what' a good template that I can steal for writing an ext/ module
20:07 stevan uhm
20:07 stevan for what?
20:07 luqui L::AG in particular
20:07 autrijus luqui: Test-Builder? whatever
20:07 * luqui is just making sure he didn't steal a bad example
20:08 autrijus stevan: a native closure maintains its env in itself
20:08 stevan ok
20:08 stevan but once it exits, then its back to the runtime?
20:08 autrijus I think so.
20:09 stevan or is the top level, just an implicit closure,..
20:11 autrijus the toplevel is definitely just an implicit closure
20:11 autrijus because you can capture that
20:11 stevan so all closures maintain their own state,..
20:11 autrijus yes
20:11 stevan ok
20:12 stevan so it might look something like this:
20:12 stevan for a top level environment
20:13 stevan Closure->new(env => %{::main});
20:14 ruz has joined #perl6
20:18 geoffb mmm, tea
20:18 stevan hey geoffb
20:18 geoffb Hey stevan, autrijus, luqui
20:20 luqui hi geoffb
20:22 luqui ?eval module Foo;  our class Bar { }   Bar.new.say
20:22 evalbot_7698 Error:  unexpected "B" expecting variable name or "("
20:22 luqui ?eval module Foo;  class Bar { }   Bar.new.say
20:22 evalbot_7698 <obj:Bar> bool::true
20:23 stevan autrijus: so, do we have a list of unboxed types that must exist?
20:24 luqui are you talking about userland unboxed types, or runtime-interface types?
20:24 stevan userland
20:24 stevan let me explain my motivation
20:24 stevan I want to (using Flgocks stuff) implement all the runtime stuff I will need for the metamodel
20:25 luqui stevan, see S09
20:25 stevan then I am going to re-write/hack the metamodel to be implemented in terms of them
20:25 stevan but I dont want to deal with any more unboxed types that I need to
20:25 luqui okay
20:25 stevan luqui: thanks
20:25 stevan I mean, the metamodel has no need for Pair, or Junction
20:25 luqui righto
20:25 stevan or Rat
20:26 luqui ?eval fail "foo"
20:26 evalbot_7698 Error: No compatible subroutine found: "&fail"
20:26 luqui ?eval die "foo"
20:26 evalbot_7698 Error: foo
20:27 luqui ?eval class Foo { has $.bar = 1 }  say Foo.new.bar
20:27 evalbot_7698 Error:  unexpected "=" expecting trait, "handles", ";" or "}"
20:29 luqui ?eval class Foo { has $.bar;  method set($.bar) { } }  my $foo = Foo.new;  $foo.set(42);  say $foo.bar
20:29 evalbot_7698 42 bool::true
20:30 stevan ok, thanks much luqui, autrijus .. I am going to sketch some of this out later tonight
20:30 stevan but now I need to go pick up the kids from grandmas house :) &
20:34 dduncan has joined #perl6
20:35 stevan autrijus: one last question
20:35 stevan what about control structures
20:35 stevan should the metamodel use the native control strucutres? or the ones implemented in the runtime
20:36 stevan or does it not really matter since the internals of the metamodel are a black box anyway
20:37 luqui stevan, how would you possibly use the control structures in the runtime?
20:37 stevan luqui: magic!
20:38 luqui ?eval switch 42 { default { say "hi" } }
20:38 evalbot_7698 Error: No compatible subroutine found: "&switch"
20:38 luqui ?eval given 42 { default { say "hi" } }
20:38 evalbot_7698 hi bool::true
20:38 luqui (duh)
20:39 stevan ok, the I am going to assume a for-loop, while-loop and an if/then/else construct in the runtime
20:39 stevan thats pretty safe
20:40 * luqui isn't sure why you're being so minimal
20:40 stevan s/runtime/native implementation language/
20:40 stevan luqui: its a reference implenation of the metamodel,.. it can be optimized per-platform
20:40 luqui right
20:40 luqui so... why so minimal?
20:41 stevan uhm, ... I dunno,.. what do you suggest?
20:41 luqui it's not like given can't be translated into a cascade or a switch
20:41 stevan yes, but why use it if I dont need it
20:41 luqui stevan, true
20:41 luqui but why not use it if it will help understanding
20:42 stevan luqui, true
20:42 luqui just write it in canonical perl
20:42 luqui you're not bootstrapping with it, correct?
20:42 luqui so there's no need to write in a subset
20:42 stevan bootstrapping in what way?
20:43 stevan bootstrapping the compiler,.. no
20:43 luqui right
20:43 stevan although I am trying to keep that in mind
20:43 stevan but I really have to run now,.. I will be back later tonight, thanks &
20:43 luqui later
20:56 luqui has quit IRC ("This computer has gone to sleep")
20:59 luqui has joined #perl6
20:59 luqui has quit IRC (Remote closed the connection)
21:00 dduncan fyi, I'm now going to attempt moving my development to svk from svn, partly for its offline commits feature ... I may or may not encounter issues that would lead to questions here on those that use svk
21:00 dduncan my client for pugs and other projects, that is
21:00 geoffb dduncan, also you might want to join #svk too
21:01 dduncan good idea ... is it on freenode?
21:01 integral yep
21:01 dduncan okay ... entering ...
21:01 gilimanjaro has joined #perl6
21:05 ruz has quit IRC (Read error: 110 (Connection timed out))
21:05 svnbot6 r7699 | luqui++ |  r2044@feather:  fibonaci | 2005-10-22 23:02:20 +0200
21:05 svnbot6 r7699 | luqui++ |  Started working on L::AG.
21:05 evalbot_7698 has quit IRC (Remote closed the connection)
21:05 evalbot_7699 has joined #perl6
21:11 evalbot_7699 has quit IRC (Remote closed the connection)
21:11 svnbot6 r7700 | luqui++ | Heh, perl5ism.
21:11 evalbot_7700 has joined #perl6
21:12 iblechbot has quit IRC (Read error: 110 (Connection timed out))
21:20 wolverian S04 says 'default {...}' is the same as 'when true {...}'. should it be 'if true {...}' instead?
21:20 Juerd No
21:20 Juerd when breaks
21:20 Juerd default { ... } unreachable();
21:20 wolverian right, but that means it does 'if $_ ~~ true { ...; leave }' (or so)
21:20 Juerd Yes
21:21 Juerd But that's not if true { ... }
21:21 Juerd I see what you mean, though
21:21 wolverian if $_ is false it doesn't execute
21:21 wolverian I think.
21:21 Juerd It's that "~~ true" tests boolean equivalency
21:22 Juerd I think that's useless anyway
21:22 Juerd as there is no 'true' and there is no 'false'
21:22 wolverian I don't know which 'true' is meant here
21:22 Juerd In case of booleans, you'd do if/else, not when/when
21:22 wolverian bool::true or true()
21:22 wolverian $_ ~~ true() would be even more bizarre (but no less wrong)
21:23 Juerd true should be a scalar op
21:24 Juerd And accept 1, no more, but certainly no less, arguments
21:24 wolverian anyway, I'd fix it if I could
21:24 wolverian but I don't think the AES live in public repos?
21:24 Juerd They do indeed not
21:24 wolverian should I submit a bug report (if so, where? p6l?)
21:25 Juerd p6l
21:25 Juerd Don't forget the ;leave
21:25 wolverian right.
21:25 Juerd Alternatively, suggest removing ~~ true
21:25 Juerd I don't believe it makes sense to have it.
21:25 Juerd bool::true's explicit usage should be discouraged.
21:25 wolverian do you mean ~~ bool::true
21:26 Juerd Yes.
21:26 wolverian right.
21:27 ruz has joined #perl6
21:28 wolverian I'm not sure what you mean with removing ~~ bool::true
21:28 wolverian care to elaborate?
21:29 wolverian (I'm really tired, so I might not get it anyway :)
21:29 Juerd Make ~~ bool::true not mean anything special
21:29 Juerd eh,
21:29 Juerd mean something special
21:29 wolverian I don't think it does now, does it?
21:29 Juerd okay, rephrase:
21:29 Juerd Make ~~ bool::true always return true
21:29 wolverian ah. I think that is misleading.
21:30 Juerd I think allowing use of bool::true is misleading
21:30 Juerd As when bool::true appears in code, people start using if ($foo ~~ bool::true) instead of if ($foo)
21:31 Juerd Too many languages prove this.
21:31 Juerd When dealing with bools, use if, not when
21:31 Juerd when is for smarter values
21:32 wolverian right. I'm just saying that making it return always true is misleading
21:32 wolverian make it blow up if you want.
21:32 Juerd You are right
21:32 wolverian btw - I think that ; leave will exit the block given to 'if', am I right? that is not what it should do.
21:33 Juerd I do think, though, that there should be an RHS for ~~ that makes it always return true
21:33 Juerd Because of when
21:33 Juerd "default" should have an expansion with "when".
21:33 wolverian Juerd, id? when $_ { ... }
21:33 Juerd That's the one. Thanks for doing my thinking :)
21:33 wolverian :)
21:33 Juerd default { ... } is when $_ { ... }, but more efficiently. Makes sense.
21:36 wolverian sent.
21:36 wolverian do you have thoughts on the leave() issue?
21:37 Juerd leave 1
21:37 wolverian does that DWIM in for loops?
21:37 Juerd I don't think it exists yet.
21:38 Juerd But I think it should.
21:38 wolverian right.
21:38 wolverian it should also behave like next() in for loops
21:38 buu Quick! Someone cheer me up!
21:38 wolverian oh. leave() just might.
21:38 Juerd wolverian: Doesn't when do next anyway?
21:39 Juerd buu: lol + lol = hihi.
21:39 wolverian Juerd, er. I think leave = next
21:39 wolverian at least if for() is implemented as a sequence of calls to the block given to it
21:39 wolverian (how else?)
21:40 Juerd buu: This may be a Dutch thing, though: )
21:40 Juerd buu: Try it on a calculator: 707 + 707 = 1414.
21:40 Juerd afk
21:41 buu I was reading Dan's "Parrot Post Mortem" and some related material about p6 and parrot
21:41 buu Very depressing =[
21:42 Juerd buu: oliebol, then?
21:42 Juerd buu: (7083170)
21:42 Juerd afk
21:45 wolverian whoa, my Epiphany has SVG support, apparently. Ubuntu++
21:46 * buu stares at Juerd
21:48 oylenshpeegul has joined #perl6
21:55 wolverian what the heck; my ISP's SMTP relay is denying me access
21:55 wolverian goddamn, I'm not paying nothing to them for this kind of a service!
21:55 wolverian (unless I decide to upgrade the service)
21:57 wolverian okay, at least they have a notification about it on their site.
22:12 G2 has quit IRC ("oops")
22:18 justatheory has joined #perl6
22:30 lisppaste3 has quit IRC ("Want lisppaste3 in your channel? Email chandler AT unmutual.info.")
22:30 lisppaste3 has joined #perl6
22:47 hexmode has joined #perl6
23:03 theorbtwo has quit IRC (Read error: 110 (Connection timed out))
23:10 rep is now known as CrazyNeko
23:12 CrazyNeko is now known as rep
23:21 larsen has quit IRC ("later")
23:55 Odin-LAP has quit IRC ("What's this button do?")
23:57 oylenshpeegul has left

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

Perl 6 | Reference Documentation | Rakudo