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