Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by stevan on 15 August 2005.
00:00 xinming1983 is now known as xinming_BeiJing
stevan luqui: re: graffle 00:02
no I think you can use a limited eval version
I bought it because I use it for work all the time
nothingmuch mega luqui++ for fmap redux 00:10
and mega luqui++ for theories
luqui Arrr, thank ye 00:11
P-)
nothingmuch Sep 19th is over here =) 00:12
xinming_BeiJing Hi,all, Now I am in Laptop... Really happy for getting the first Laptop in my life. 00:13
luqui not here 00:14
another six hours to go
xinming_BeiJing hmm, Why doesn't pugs be updated these days please?
luqui xinming_BeiJing: hmm?
xinming_BeiJing It seems it's being lasting quite for 2 days...
luqui scampers off to gander TaPL 00:15
stevan luqui: more theories stuff? where? 00:16
re: TaPL
I am still trying to grasp Church Numerals fully,.. that is some really really really cool stuff
luqui use.perl 00:17
oh, what?
yeah, functions isomorphic to numbers is pretty sweet
stevan I mean I "get" it, but my mind see it as being too simple to be true
luqui wrote increment/decrement/addition of church numerals in haskell
and they worked
(wikipedia's definition of subtraction is wrong though) 00:18
stevan I was gonna write them in perl :)
luqui er, multiplications
haskell is a bit cleaner in that domain, but have at it
see the lambda_calculus.p6 that was recently checked in
anyway, re: theory stuff
a role is a single-parameter theory that obeys a certain property 00:19
stevan yes I saw that,.. I wanted to expand it with examples from TaPL
svnbot6 r7043 | putter++ | PIL-Run - fixed p6_to_a(), and \@INC. A simple replacement Test.pm is again used for make test and smoke, as the real one currently fails with Perl6-Container/Perl6-Value errors (eg, is(1,1,'x') doesn't work).
luqui aa soo
stevan luqui: is there a way to do to the "next method" in C::MM::Pure? 00:22
luqui er, no
luqui wonders how he would implement that
luqui wonders what the exact semantics are
stevan wonders how luqui will too
luqui stevan, what exact semantics would be useful to you?
nothingmuch before i nod off i'd like to raise my hat to stevan & luqui for making perl6 much more beautiful on the inside
stevan next METHOD in multiple dispatch context is supposed to first try the next most appliable mulit-method
nothingmuch: thanks :)
luqui smiles bigly 00:23
thanks
stevan nothingmuch: are you saying we are ugly on the outside?
nothingmuch nope
perl 6 was very much a handwavy fog on the inside
stevan oh,.. that changed?
nothingmuch but WRT the metamodel, and theories, and type inferrence, and all that, I think we are making amazing progress
towards a language that is designed to be much more balanced than anything else 00:24
while reaching for both ends of the spectrum
strong typing and dynamic typing
stevan blushes
nothingmuch a good metamodel
good functional support
sound definitions of internals
(sound == elegant + practical)
these things are slowly mounting, and they aren't going away 00:25
and I think that you two are responsible for a lot of it... so thanks =)
luqui :-D
and to return the complement, I think I'd like to see nothingmuch in charge of a virtual machine someday 00:26
way cool ideas
stevan here here
I second that
nothingmuch neh 00:27
my current obsession with the compilation process is just a manifestation of another love
it'll go away soon
what I really like is to see a good plan come together from end to end
stevan of course it would be side gig from his real career as a porn star
luqui haha
nothingmuch and high level things that are useful and go all the way down to actually working is what is making me interested in VMs
and yes, there's that 00:28
then I'll go into politics
luqui is there any other path?
nothingmuch or start a wikipedia of my own
stevan nothingmuch for president!!!!!
nothingmuch (see also bomis.com)
stevan oh wait,.. we alreayd have that here
luqui stevan: lol
stevan praises local again,.. but this time with symbol tables :) 00:29
nothingmuch en.wikipedia.org/wiki/Bomis
luqui stevan, you'll be cursing local soon, when it refuses to let you do it to lexicals
nothingmuch luqui: aye, that always depressed me about local =/
stevan luqui: I only need it to rebind global
s 00:30
nothingmuch as local is really scope of execution and my/our is scope of definition, which is why perl6's attitude towards these things is so much better
stevan $?SELF, $?CLASS, $?ROLE, $?PACKAGE and now "next METHOD"
I was previously keeping my own stack,.. which was wasteful
I actually got the local rebinding idea from CLOS 00:32
luqui 's battery is going
my mind is going
stevan part of the 'apply-method' function calls a 'add-function-bindings' which makes lexical binding for method execution
luqui my mind is going
stevan its a very cool approach, so I was happy to see it work in perl too 00:33
gantrixx anyone here living in arizona? 00:47
svnbot6 r7044 | stevan++ | Perl6::MetaModel 2.0 - 00:49
r7044 | stevan++ | * adding new example test (classic OO shapes)
r7044 | stevan++ | * making next_METHOD rebound for each dispatch, making it specific to
r7044 | stevan++ | it's execution context, this removed the need for manual mangement
stevan is amazed at how useful local and lvalue subs have proven to be in the metamodel 01:03
I have never found a good for use for them before this :)
svnbot6 r7045 | stevan++ | Perl6::MetaModel 2.0 - 01:07
r7045 | stevan++ | * changing opaque_instance_attrs($) into opaque_instance_attr($$) so that it will
r7045 | stevan++ | fetch the label for you, making the opaque instance structure further opaque and
r7045 | stevan++ | making way for some cool things with Roles (more on that later)
r7046 | putter++ | PIL/Run/PrimX.pm: a couple of new primitives, a bit of cleanup. 01:19
r7047 | putter++ | perl5/PIL-Run/lib6/Test.pm: more Test subs. And :todo is now tolerated (but doesn't actually work), which unfortunately required... 04:02
r7047 | putter++ | perl5/Perl6-Value/lib/Perl6/Code.pm: short-circuited check_params(). It now always returns 1. This is a work-around hack to let simple Test almost work, despite sub f(*%h){};f() currently failing.
r7048 | gaal++ | fatal.pm in Prelude. Exposes a bug in %*INC not being checked 04:20
r7048 | gaal++ | correctly before 'use'. It's interesting to see whether this
r7048 | gaal++ | module works correctly (once lexical pragmas do) since it does
r7048 | gaal++ | things that need to work in different calling contexts.
gaal bug report: "pugs" on win32 doesn't work, because that OS doesn't have unix's automatic interpreted binary mechanism. 05:08
svnbot6 r7049 | putter++ | perl5/PIL-Run/lib6/P5Runtime/PrimP6.pm: statement_control:for now works with blocks of both arity 1 and 2. But not > 2 (for no good reason).
Detonite Good morning... 05:29
dduncan good evening 05:33
Detonite ?eval 5 05:37
evalbot_7049 5
revdiablo ?eval 5**5 05:40
evalbot_7049 3125
nothingmuch morning 05:44
Detonite Morning
?eval ? 05:52
evalbot_7049 Error: unexpected end of input expecting term
putter status report: perl5 backend PIL-Run: the current bottleneck is Perl6-Value and Perl6-Container. Repair of Code.pm's support for slurpy array arguments is perhaps the most pressing. But there is a lot which is not working. PIL-Run's current role is to exercise metamodel and Perl6-Value/Container objects. MM1 is working fine for now. But the objects need work. Fyi. 05:53
a recent pilrun smoke was 41%. if the test :todo's could be slurped and "# TODO"'ed, it would be over 50%. 05:58
good night & 05:59
svnbot6 r7050 | Darren_Duncan++ | /ext/Locale-KeyedText : merge in the latest changes made to the Perl 5 version 06:32
r7051 | putter++ | perl5/PIL-Run/lib6/Test.pm: Now handles :todo's. A temporary kludge - when argument passing works better, this will break. And can then be replaced. (ie, use slurpy hash parameters, which currently don't exist/work) 06:38
r7052 | putter++ | PIL-Run - Removed obsolete TODO. Created README with usage hints. 07:21
Detonite welcomes evalbot_7052
nothingmuch 8192 would be nice 07:22
it's a big number
webmind- and a round number 07:23
Detonite Aye, quite round.
svnbot6 r7053 | putter++ | PIL-Run - Added graphs() and codes(). string/length.t now mostly passes. 08:15
r7054 | putter++ | PIL/Run/EvalX.pm: improved temp() 09:27
nothingmuch holy crap 09:34
i have C
GeJ nothingmuch: you have C? is it that bad? C is less fun than Perl6 for sure, but it's not _that_ bad, is it? 09:36
nothingmuch i mean Blondie is compiling to C
GeJ sounds sweet... 09:37
nothingmuch shyte
i can't Inline::C it though
since my types conflict with it
nothingmuch does some yucky search and replace 09:39
WOOT! 09:40
ods15 .....
nothingmuch IT FUCKING WORKS! IT REALLY REALLY WORKS
ods15 if it's C, KEEP IT FRIGGIN C
C is good
GeJ I think he means "IT'S ALIVE! ALIIIIIIIIIIIVE!!!!" 09:41
Detonite_ claps
ods15 bleh
ods15 bleh's at all
GeJ nm++
pasteling "nothingmuch" at 212.143.92.226 pasted "say(42) in C" (32 lines, 742B) at sial.org/pbot/13215
ods15 most of this channel seems to like perl6 more than C :/
nothingmuch ods15: duh 09:42
C is a headache
ods15 C is friggin awesom
nothingmuch you shouldn't write in C, you should compile to it ;-)
ods15 typedef int IV; typedef FILE * GV; typedef char * PV;
wtf???
Detonite_ Feh. Pure binary is the only truth.
nothingmuch ods15: quick hack to match to Cification of perl values
in perl an IV is an SV that represents an integer 09:43
it's really a struct
since I'm doing static typing, i'm just using a real int instead
PV is pointer to string
GV is filehandle
ods15 Detonite_: i've done a bit of that actually
nothingmuch you keep "wtf???"ing at stuff like we're idiot
s 09:44
ods15 it was quite fun
nothingmuch: no, it just means wtf
nothingmuch well, instead of saying "what the fuck" as if it's insane, you can say "please explain"
ods15 anyway, lol, that's some hilarious C code :)
nothingmuch why is it hilarious?
ods15 the "leaks" :)
nothingmuch fuck it, i'm not doing garbage collection 09:45
ods15 also, sizeof(char) is just funny :)
nothingmuch ods15: you program C and yyou think that's funny?
you are aware that char is not always 8 bits, right?
ods15 rofl, no, it IS, unless you're doing f'ed up typedefs/defines 09:46
nothingmuch ods15: no, it ISN'T 09:47
ods15 it is garunteed by C standard that char is always 8 bits
nothingmuch no, that's what it's guaranteed as the usable space
it may be aligned to anything else
QtPlatypus nothingmuch: Can't you use a poblically accessable garbage collector.
nothingmuch in crays it's 256 values, but takes up 64 bits
since crays can only address by memory words and not bytes
QtPlatypus: i don't know of any, i'm not a C coder 09:48
w
QtPlatypus publically.
nothingmuch e.g. www.hpl.hp.com/personal/Hans_Boehm/gc/ ? 09:49
QtPlatypus Exactly
pjcj as I recall sizeof(char) is defined as 1 in the C standard 09:51
nothingmuch pjcj: even WRT allocation? 09:52
well, whatever... the compiler will optimize that away
i was always told never to hard code magic numbers anyway
my well behaved alter ego, which was telling me that all along, kicks in when coding in unfamiliar territories 09:53
pjcj well, the sizeof a struct may not equal the sum of the sizeof its members, but sizeof(char) will always be 1 09:54
clkao peskky padding 10:13
pjcj pwd 10:17
bah
ods15 12:47:23 <@ods15> ahem, sizeof(char) is ALWAYS 1, right? 10:45
12:51:22 <@dalias> yes
12:52:12 <@iive> ods15, no
12:52:16 <@iive> it is at least 1
12:52:24 <@dalias> iive, stfu and rtfm
12:52:30 <@dalias> sizeof(char) is 1 by definition
12:52:50 <@dalias> read the c standard or c.l.c faq if you don't believe me
pjcj: yup
and struct padding is a totally different thing 10:46
pjcj of course, that doesn't mean 1 char is necessarily exactly 8 bits ... 11:02
nothingmuch me leaves sizeof(char) 11:31
don't feel like editing the file, because it really doesn't matter, and it helps me focus to see hints like that =)
it allows me to reduce mental stack overflows when reading code i'm not 100% comfortable with 11:32
oh god... not another bug in setup 11:33
=(
nothingmuch does not like maintaining code which is other people's fault
i'm not sure whether I want to minimize my interaction with the code, and fix things trivially, or whether I should actually work to improve it's robustness
so that I get less bugs in the future
pjcj the maintenance programmer's dilemma 11:35
QtPlatypus nothingmuch: I suggest unit tests to solve that problem. 12:01
nothingmuch QtPlatypus: this is absolutely not unit testable
QtPlatypus THen you can you do robustness work without fear of introducing more bugs. 12:02
nothingmuch just refactoring it from one giant heap into code that can actually be called by unit tests is going to take me forever
and the reason I don't want to do robustness work is because I don't want to waste time ;-)
the code parts (Qt UI, configuration management, wizardly behavior, installation logic, and probing) are about as coupled as it gets 12:03
it's about 6000 lines
QtPlatypus Ouch
nothingmuch i think 3000 or so are dead
it's filled with #ifdefs in places like parameter arguments
e.g.
int do_this ( foo param, 12:04
#ifdef SOMEDDEF
bar another,
#endif
);
and then the calls to do_this also look like that
it's OOP, but doesn't really know it
GeJ ugly... :(
nothingmuch things that should be instance data are passed around as parameters
even the naming thing is all bad
Config::setConfig or something like that does the full installation ;-) 12:05
and since block comments for non working features are pretty much 50% of the code, it's completely unreadable too
i resorted to using doxygen's function call graphs, so that could actually understand which code happens when and what parts of it are relevant 12:06
as I see it the code base has no value. I could reimplement all the features with Verby in about 2-3 days
then I can learn perl's Qt bindings and write a GUI in about 2 weeks
or I could port Verby to C++ in slightly less, and then do Qt in C++ for another 2 weeks or so
but i don't want to, it's not important enough 12:07
nothingmuch wwraps up his brain for the 40th time today 12:19
kolibrie ?eval $pattern = rx /(5)/; say '123456789'.split($pattern).join(', '); 12:40
evalbot_7054 Error: Undeclared variable: "$pattern"
kolibrie ?eval my $pattern = rx /(5)/; say
evalbot_7054 bool::true
kolibrie ?eval my $pattern = rx /(5)/; say '123456789'.split($pattern).join(', '); 12:41
evalbot_7054 1234, 5, 6789 bool::true
kolibrie ?eval my $pattern = rx /5/; say '123456789'.split($pattern).join(', ');
evalbot_7055 1234, 6789 bool::true
kolibrie ?eval my $pattern = rx /5/; say '123456789'.split(rx /($pattern)/).join(', '); 12:42
evalbot_7055 123456789 bool::true
nothingmuch kolibrie: this behavior has changed in P6, i think
see S04
kolibrie so how do I capture? 12:43
nothingmuch captures are the same
it's pattern interpolation that changed
?eval /5/
evalbot_7055 Error: cannot cast from VUndef to Pugs.AST.Internals.VCode (VCode)
nothingmuch ?eval rx/5/
evalbot_7055 {rule}
nothingmuch ?eval ~ rx/5/
evalbot_7055 '<Pugs::Internals::VRule>'
nothingmuch i think your pattern is trying to match that string inside 123456789
s05, not s04... sorry 12:44
kolibrie so if I have a non-capturing rule
how do I pass it to split in such a way that it is captured?
nothingmuch dev.perl.org/perl6/doc/design/syn/S...erpolation 12:45
?eval my $pattern = rx /5/; say '123456789'.split(rx /(<$pattern>)/).join(', '); 12:46
evalbot_7055 *** Cannot parse PGE: :w::(<$pattern>) *** Error: PGE Parse error: invalid subrule name at offset 6 (found <<$>>) 123456789 bool::true
svnbot6 r7055 | nothingmuch++ | Blondie:
r7055 | nothingmuch++ | - minimal compilation to C
r7055 | nothingmuch++ | - no symbolic unification of duplicate nodes (necessary for recursion)
r7055 | nothingmuch++ | - type safety issues need to be resolved for further progress
nothingmuch =)
scook0 nothingmuch++ # asynchronous list-forcing
nothingmuch i think that's how it'll work, but it's obviously not there yet
scook0 I was going to reply to your thread, but didn't get around to it... :( 12:47
nothingmuch would like feedback, so do get around to it
==)
thanks
scook0 just to point out that all you need is &async_force, and everything else can be considered a shorthand for that
nothingmuch ah... ofcourse =) 12:48
scook0 but I can see gather:async being clearer in many cases
kolibrie nothingmuch: that could be the syntax, S05 skips that example
nothingmuch kolibrie: around the middle of "Extensible meta syntax" 12:49
A leading $ indicates an indirect rule. The variable must contain either a hard reference to a rule, or a string containing the rule.
kolibrie ah yes, that makes sense now
nothingmuch ingy: ping
kolibrie so, can that be fixed in pugs, or is that a pge thing? 12:50
nothingmuch i think pge doesn't support it yet, and after that'll make it in it's pge/pugs integration
nothingmuch finally finished doing this: search.cpan.org/~ingy/Inline-0.44/C...#Evaling_C
nothingmuch proudly claims to have "totally lost my marbles" 12:51
13:17 ods15_ is now known as ods15
Limbic_Region I just did a make clean, svn up, perl Makefile.PL, make, pugs -V for the first time in oh, about a month - anyone know why it says r6656? 14:02
PerlJam Limbic_Region: I just did the same thing and I got r7055 14:04
Limbic_Region this is odd then cause when I svn up I am at the proper rev level 14:06
*shrug*
PerlJam perhaps you need to make clean or something 14:07
scook0 Limbic_Region: simple things: did you check that the build succeeded, and that you're running the right binary?
Limbic_Region see step 1 in my list above PerlJam
scook0 - yep and yep
not a big deal - just wanted to play around with some higher order p5 code in p6 and see how much/little it changed 14:08
PerlJam Limbic_Region: maybe you need to "make realclean" or "make distclean" or whatever the bleachy version of clean is.
Khisanth realdistclean! :P 14:09
Limbic_Region well - considering this box only has 256MB of ram and I can't even use all of it - I will wait until tonight to have another go at it
so has anyone been building any new/exciting projects with Pugs lately? 14:11
Limbic_Region hasn't checked the examples directory since the whole ?? :: --> ?? !! change
Khisanth EH?! 14:13
Khisanth goes to check summary
Limbic_Region you mean you weren't aware of the the ?? :: to ?? !! change? 14:14
that wasn't in this week's summary but the previous
which I believe was for 3 weeks
IIRC
Khisanth hey autrijus is on perl.com :)
Limbic_Region yeah - that article is a couple weeks old too 14:15
they apparently didn't post a new article as typically done on Thursday evenings
Khisanth I haven't checked perl.com in a while so it's new to me! 14:18
odd are posts in google groups newest > oldest from top to bottom? 14:20
Limbic_Region checks more regularly now that he has gotten paid for writing an article published on perl.com
dunno - I let gmail do that for me
Limbic_Region wanders off to a doctor's appt 14:32
nothingmuch any news from autrijus? 16:04
i have a problem 16:45
this problem happens from time to time
if ($condition) { pre };
unconditional middle;
if ($condition) { post } 16:46
i hate repeating conditional tests
i hate repeating unconditional middle
(even if it's just a single call)
e.g. if ($condition) { pre; $self->foo; post } else { $self->foo }
can anyone think of a solution? 16:47
higher order functions are ofcourse an option:
my $uncond = sub { $self->foo };
optional_wrapper($condition, sub { pre }, $uncond, sub { post }); 16:48
this can be beautified with prototypes, but it's still rather clunky
method mk_symbol ($node) { 17:03
state %allocated will autotovivify { 17:04
my $type = $node.struct_equiv.type;
ods15 nothingmuch: bah, there's not much you can do about "split" conditional
not much to do about it :/
nothingmuch join("_", $type, ++%.counters{$type}); 17:05
}
ods15 i hate it too
nothingmuch $allocated{$node};
}
ods15: there's not much. you can do right now
but conceptually the logic flow is intuitive:
pair up some code blocks 17:06
and attach them to the same conditional
ods15 ?
nothingmuch i'm asking for new syntax ideas
something prettier than:
my $cond = <test>;
if $cond { pre }
mid
if $cond { post }
ods15 if the conditional is intense i sometimes use a condition variable with a nive name :)
nice* name 17:07
nothingmuch that's not splitting it up
here is an idea:
label: if ($condition) { pre }
mid
label: { post }
where label is the same 17:08
it's much more "static" than making a new variable
ods15 i dont like it
Aankhen`` if ($condition) { pre; PAUSE { middle; }; post; }
Seems strange when I write it out.
nothingmuch Aankhen``: what I don't like about that is cuddling
Aankhen`` Basically, I'm thinking of "pausing" the condition.
nothingmuch the nested block is under the if () { }
so it's unintuitive to read it
Aankhen`` Yeah, I know, I don't like it either; just throwing out ideas./ 17:09
nothingmuch but I wanted something like that
hmm
Aankhen`` s|/||
nothingmuch maybe just like if else:
ods15 nothingmuch: find some other kind of parenthesis and reverse direction it
nothingmuch if ($cond) {
} pause {
mid
} cont {
}
if ($condition) {
} always {
ods15 anyway, i say give it up
nothingmuch } conditional {
}
ods15: what do those comments help
Aankhen`` Hmm.
nothingmuch if you have critique, share it 17:10
ods15 this feature accomplishes nothing imo, it's not more readable
nothingmuch but there's no need to pessimize pointlessly
Aankhen`` if ($condition) { ... } but always({ ... })
Ahh, that reads better than it functions. :-P
ods15 arno, because you need it in the middle
nothingmuch Aankhen``: i'm reminded of while (...) { } contineu { }
ods15 heh
nothingmuch s/eu/ue/
ods15 nothingmuch: well, the flaws are obvious :/ i'm thinking of solutions right now, and coming up empty 17:11
Aankhen`` Me too, but it seems a little complicated.
(the if, always, conditional)
nothingmuch ods15: so please avoid pointless bashing
Aankhen`` `if ($condition) { ... } pause { ... } resume { ... }` might make more sense there, BTW.
nothingmuch hmm, i like that
Aankhen`` Just a little lengthy... 17:12
nothingmuch i think we need to s/pause/$thesaurus.lookup("always").pick/;
Aankhen`` Indeed.
ods15 "default" heh no 17:13
Aankhen`` All of them are very lengthy...
nothingmuch thesaurus.reference.com/search?q=unconditional
ods15 i'm thinking switch statement :)
nothingmuch ods15: we have that too, but it doesn't apply
lack of break in C can only move it downwards
unless you add a goto or something
ods15 i wish switch supported this
Aankhen`` Heh, "surely"... 17:14
ods15 switch { case a: a_code; case b: b_code; case c: c_code; default: common code; }
nothingmuch i think maybe 'uncond' instead of always/pause
ods15 as in, each runs for it's case, and one that runs for several cases :/
lol, "dead"
Aankhen`` ods15: given ($foo) { when 1 { ... }; when 2 { ... }; when 3 { ... }; common_code(); } 17:15
That's the Perl 6 version, IIRC.
ods15 Aankhen``: not wquit'e though
quite*
i want even more
nothingmuch ods15: when in perl 6 is pretty cool
read in s04 it hink
ods15 switch { case a: a_code; case b: b_code; case c: c_code; abc_code; break; e_code: d_code: not_abc; }
nothingmuch it's actually much simpler than it looks 17:16
ods15 get what i meant
Aankhen`` ods15: Yes; too lazy to figure it out in P6 right now though.
nothingmuch: "uncond".chars == "always".chars
ods15 the 'common' code i can just put outside the switch if it was really common :)
nothingmuch Aankhen``: so you want it shorter? 17:17
Aankhen`` nothingmuch: Yes.
nothingmuch hmm
Aankhen`` I keep thinking of "yet".
nothingmuch errm
let's chuck this at p6l
Aankhen`` if ($cond) { ... } yet { ... } resume { ... }
Mmm, TBH, it's not something which I'm dead set on. I can do without it. I'm just trying to give you suggestions. :-)
nothingmuch fairy nuff 17:18
Aankhen`` Then again, if you do p6l it, I'll back you up: it should be fun. =)
The most natural -- though sadly lengthy -- syntax would be: if ($cond) { ... } regardless { ... } again { ... } 17:20
s/again/conditionally/
nothingmuch thesaurus.reference.com/search?q=regardless
Aankhen`` Hehe... if ($cond) { ... } anyhow { ... } but_conditionally { ... } 17:21
"but" is already taken, sadly.
It's the only candidate. The others are too lengthy. 17:22
nothingmuch i don't like 'but' for this... it's too general
i don't mind long either... else and elsif are about as long as 'uncond'
Aankhen`` I'm not suggesting we use it, just lamenting the unfortunate state of affairs.
nothingmuch not to mention 'else if' which i really would prefer over 'elsif'
i find typing the extra chars easier than remembering an arbitrary contraction 17:23
Aankhen`` Dude, I don't mind long stuff either, but if we propose this, I'm quite certain people will keep a beady eye on the length.
nothingmuch phooey for them
we'll see what happens ;-)
Aankhen`` Heh.
Then `uncond` seems to be a good choice. 17:24
if ($cond) { ... } uncond { ... } resume { ... }
nothingmuch i don't like resume... here's why:
uncond always happens
if () { ... } happens 50% of the time, you would guess 17:25
so it seems to mee like resume is continuing the uncond for no appearant reason
Aankhen`` Hmm, I see.
nothingmuch recond sucks ;-) 17:26
Aankhen`` I was thinking of in terms of this: `uncond` "suspends the conditionality of the following statements", whereas `resume` resumes the "conditionality".
nothingmuch is there a word for predicated maybe?
yes, that makes sense, but from an execution perspective, not so much a linguistic one, i think
Aankhen`` Yeah, you're right.
nothingmuch but let's use that for now 17:27
Aankhen`` What about `conditionally`, since length isn't a factor?
nothingmuch that's too much
;-)
Aankhen`` Or, wait... just `cond`?
nothingmuch yes, let's use that
Aankhen`` if ($cond) { may_happen(); } uncond { always_happens(); } cond { may_happen_too(); } 17:28
Yay. Only 8 hours to go for the first season of Beast Wars to finish downloading. 17:32
nothingmuch tries hard to finish the next big step in C compilation tonight 17:33
Aankhen`` C compilation?
nothingmuch Blondie compiles to C 17:34
Aankhen`` Blondie?
nothingmuch ah
Aankhen`` Sorry, I appear to be out of the loop.
nothingmuch Blondie is an intermediate language AST
Aankhen`` I see.
dduncan is there a Dagwood module to go with it? 17:35
Aankhen`` wanders off to play Condition Zero. 17:37
Oh great, powercut. BBL. 17:39
Aankhen`` hugs his UPS.
nothingmuch that i'm playing around with 17:40
which is supposed to be a preview of the Perl 6 compilation pipeline
so far it has a perl backend and a C backend that successfully share a prelude
and simply replace the parts of the prelude that is easiest for them to replace
bah, cable modem died
it has type inferrencing
which is optional for the perl runtime, but required for C compilation
(compilation goes down to bare metal types - no boxing whatsoever)
dduncan: que es dagwood? 17:41
gaal: ?! 17:46
gaal aloha!
the army proves its stupidity yet again! 17:47
they canceled the mission i was called for, but somebody forgot to send out notices
nothingmuch heh
gaal so, that was a day wasted 17:48
now you know where your tax shekels are going
ooh, c! 17:49
what be "prel", nm? 17:50
nothingmuch builtin prelude replacement
perhaps it should be s/prel/builtin/ 17:51
gaal "native"?
nothingmuch svn.openfoundry.org/pugs/perl5/Blon...uiltins.pm
sub prelude {
gaal anyway, i need a nice long bath
or like the brits say when speaking of Jane Austen's favorite town, baaaaaath 17:52
nothingmuch heh
gaal very nice to see you :-)
but, later
nothingmuch oops 17:57
ciao
dduncan nothingmuch, there is a well known newspaper comic strip called 'Dagwood', which is about a couple whose names are 'Dagwood' and 'Blondie' 18:21
it sounded like you were naming your module after the wife 18:22
nothingmuch oh
nop
e
dduncan so I wondered if there was one named after the husband too
nothingmuch abraxxa in #catalyst brought it up
i asked for a name for a dumb intermediate language
i thought of calling it DIL
dduncan how about Dunce?
nothingmuch too late 18:23
but that is acctually a pretty nice name
too bad I didn't ask you earlier ;-)
dduncan now, I haven't RTFM yet, but what is Blondie to be used for ... or is it just a fun project? 18:24
nothingmuch it's an experiment
i'm trying out the compilation scheme I raised to p6l with a smaller language
i'm trying to write multiple backends that reuse as much code as possible
dduncan that's all I need to know
nothingmuch but without limiting the possibility of optimizing any backend given enough time
PerlJam nothingmuch: do you know of the book entitled Blondie24 ? 18:58
gaal say, if I want to debug-print all Envs defined, can I? this probably is a nonsensical question from the pov of a pure language, but... 19:28
Aankhen`` goes to sleep. 19:35
G'night. 19:36
svnbot6 r7056 | putter++ | PIL-Run - Create Code's less often (more correctly). Minor other tweaks. 19:51
kolibrie gaal: that's an Haskell question? # about Envs 20:02
20:37 whiteg_ is now known as whiteg
gaal kolibrie, yes: a pugs internals question, as i'm trying to debug a misplaced write to an env. 21:22
svnbot6 r7057 | putter++ | PIL-Run - Create Code's somewhat more often (more correctly;). 23:04
geoffb waves 23:35
Hi everyone
geoffb has been buried in stabilizing his new system
What's been going on of late? STATUS and docs/journal are both about a week old . . . . 23:36
rafl, ping 23:38
rafl geoffb: pong
geoffb I'm finally taking the time to learn how to use packages.qa.debian.org, because I want to know how long until pugs is in testing . . . but I'm not sure how to tell when something like gmp (needed for ghc6) will go in. 23:40
When a package will break a whole bunch of packages (I assume for version dependencies), but lots of packages depend on it, what happens?
Logjam?
And from the perspective of a user, what's most likely to get me 'apt-get build-dep pugs' within the next few days? Will just waiting do it, or do I need to a test/unstable hybrid? 23:42
rafl geoffb: afaik they need to be recompiled for the latest gmp version. If that's done they go in all at once. 23:43
geoffb figures it's about time he became a good Debian citizen after all these years . . . starting with testing packages I need, I guess.
rafl, so it's just an automated thing? Or do the maintainers of all of those packages need to individually change their dependencies and reupload? 23:44
rafl geoffb: The maintainers need to upload a new version that get's recompiled against the right version. Or somethimes other people do an NMU (non-maintainer-upload), as it happened for ghc6's gmp transition. 23:45
geoffb rafl, OK, that sounds like the answer to my previous question is "Dependency forest is too thick -- probably need to go with a hybrid install" 23:47
rafl geoffb: Installing gmp/pugs from sid into etch isn't a big problem. gmp isn't in etch yet because there are some problems on alpha. 23:48
Nothing that concerns you on i386, powerpc or whatever you're using.
geoffb Oh, there really are alpha problems -- I had read the little thing that said "alpha gets blamed for everything because it's the first arch in the list", and I assumed that applied. 23:49
i386, FWIW.
If I go with a hybrid setup, how do I avoid wanting to install one package that happens to have a lot of dependencies, and finding myself suddenly with hundreds of sid packages? 23:51
rafl You could pin to the etch release or only install the packages you want from sid by hand via dpkg (as I do) 23:57
(for those machines that don't run sid, most of my boxes are unstable)