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) |