Feather users: perlcabal.org/~autrijus/ | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org Set by autrijus on 26 May 2005. |
|||
mugwump | I guess I don't need the built-in ASCII ones to be overloadable; there's plenty of lookalike unicode characters I can use :-> | 00:00 | |
meppl | gute nacht | 00:02 | |
mugwump | das bin alles du sagen! | 00:03 | |
Ich bedeute, ist das alles, das Sie überhaupt sagen;) | 00:06 | ||
eric256 | later all. | 00:09 | |
autrijus | SamB: so you broke pugscc for this release... :-/ | 00:10 | |
SamB | autrijus: oops | ||
how? | |||
autrijus | SamB: I think I'll revert things to before the <ref> bug | ||
meppl | so i made tests for a developer some weeks ago :o) thats my only contributuin as yet | 00:11 | |
SamB | I thought that was there *before* I started messing with it? | ||
autrijus | SamB: that is possible. then it's not your fault :) | ||
I merely ran "svk annotate" | |||
and saw your name associated with the | |||
16860 ( bsmith 2005-05-10): instance (Typeable a) => Show (TVar a) where | |||
line | |||
apologies if that's actually broken before you | |||
meppl: that's nice :) | 00:12 | ||
ok, no big deal. I'll just declare it broken. | |||
SamB: right, it was broken before you started hacking AST.Internals. my apologies | 00:16 | ||
autrijus wonders what really broke it | 00:17 | ||
mugwump dashes off home to meet the guy who's installing his 55 MEGABIT uplink | 00:23 | ||
autrijus | :) | ||
nice | |||
mugwump | sadly I won't get full rate to work | 00:24 | |
as we've only got a 10Mbit fibre connection here | |||
theorbtwo | You know, it's a crazy world when the 10Mbit fibre connection is the slow one. | 00:25 | |
00:27
ChanServ sets mode: +o autrijus,
autrijus sets mode: -o autrijus
|
|||
autrijus | so, preflight. finally | 00:28 | |
pugscode.org/tmp/Perl6-Pugs-6.2.6-pre1.tar.gz | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | 00:29 | ||
theorbtwo | Does this mean that I should wait to check in any Code::Exp patches? | 00:29 | |
(Not that I'm actively working on them at the moment...) | 00:30 | ||
autrijus | Preflight! pugscode.org/tmp/Perl6-Pugs-6.2.6-pre1.tar.gz | ||
theorbtwo: well, if you're relatively sure it won't break existing tests, go ahead :) | |||
theorbtwo | Nod. | ||
autrijus | is anyone running smoke on the preflight? :) | 00:36 | |
wolverian | sorry, have to go sleep. 25 hours or so of the waking world is too much | 00:39 | |
autrijus | that's fine :) | 00:40 | |
autrijus ponders if letting it simmer a bit is a better idea | |||
SamB: the compile problem is fixed. it's caused by Prelude. sorry :) | 00:41 | ||
SamB | you mean GHC.*? | ||
then again, I guess that is where everything in Prelude comes from... | 00:42 | ||
(nearly) | |||
autrijus | I mean src/perl6/Prelude.pm | 00:43 | |
SamB: got some time to run a "make test"? :) | |||
00:49
ChanServ sets mode: +o autrijus,
autrijus sets mode: -o autrijus
|
|||
puetzk | anyone here want to commit a patch to docs/quickref/unicode with more of the vim digraphs? | 01:03 | |
autrijus | puetzk: why don't you commit yourself? | 01:04 | |
puetzk | autrijus: I suppose I could ask for a committer bit too :-) | ||
autrijus | puetzk: email? :) | ||
puetzk | but then I'd have to learn haskell | 01:05 | |
not that that would be bad :-) | |||
autrijus | nah, you can commit in docs/ first :) | ||
what's your email again? | |||
puetzk | [email@hidden.address] | ||
autrijus | invitation sent. welcome aboard! | 01:08 | |
oh wait | |||
you're already registered. | |||
you're a committer now :) | |||
puetzk | registered where? | ||
autrijus | in openfoundry | ||
puetzk | oh, since I submitted a bug | ||
ok :-0 | 01:09 | ||
autrijus | anyone on win32 willing to test the preflight? | 01:10 | |
puetzk | committed :-) | 01:11 | |
eric256_ | the call for a test still out there? | 01:17 | |
i can run a test on Win32 if needed | 01:18 | ||
autrijus | woot! | ||
yes | |||
eric256_ | do you want smoke or just a regular test run? | ||
theorbtw1 supposes he should do that testing thing. | |||
autrijus | eric256_: just "make test" | ||
from the tarball in the topic | 01:19 | ||
pugscode.org/tmp/Perl6-Pugs-6.2.6-pre1.tar.gz | |||
theorbtw1 | Oh, that isn't equiv to a svn checkout? | ||
autrijus | it's somewhat earlier | ||
should be the same | |||
eric256_ | eww tarball? can i just SVN a certain version? | ||
autrijus | so if you already have a checkout going, just use that | 01:20 | |
eric256_: you can use svn also. the idea of tarball is just making sure the manifest etc are right | |||
eric256_ | i'll download that then | ||
theorbtw1 | Anybody check AUTHORS? I see it was just modified. | ||
01:21
theorbtw1 is now known as theorbtwo
|
|||
autrijus | theorbtwo: I just fixed some capitalisation | 01:21 | |
hadn't run the usual script | |||
eric256_ waits for it to finish building | 01:23 | ||
autrijus | all tests clean on freebsd | ||
still going on feather | 01:24 | ||
puetzk glares at Pugs.Embed.Perl5 | |||
I thought this worked yesterday | 01:25 | ||
maybe I was just crazy | |||
autrijus | puetzk: what worked? | ||
puetzk | that it compiled | ||
autrijus | if you toggle between the two you'd need to rm the .o and stub files | ||
puetzk | it had never worked before | ||
autrijus | it should work | ||
puetzk scrubs his tree | |||
autrijus | but if you had an older build without embedperl5 in the same locatio | ||
you need to kill the .o and stub files | 01:26 | ||
puetzk | it's missing a _GNU_SOURCE, so it doesn't get a declaration needed for rcrypt | ||
eric256_ realizes he did nmake instead of nmake unoptimized....well maybe the tests will run faster and it will balance out | |||
puetzk | at least, that's what was going wrong before | ||
puetzk lets it build again | |||
eric256_ | does svnbot need fixed? someone working on that? | 01:27 | |
puetzk | same failure. Hmm... | 01:28 | |
autrijus | I'm fixing that | 01:29 | |
puetzk: hmm. what if you add, by hand, the _GNU_SOURCE to $ghc_flags in Makefile.PL or in Makefile | |||
puetzk tinkers | 01:34 | ||
adding it at the top of perl5.h didn't work, which makes me think that something is specifically messing with those flags | 01:35 | ||
autrijus | bah. svnbot6 is beyond repair | ||
autrijus gives up | |||
maybe when I'm more awake | 01:36 | ||
eric256_ | .me vows never to make optimized agian | 01:37 | |
theorbtwo | Hm, I see what looks like an awful lot of "# Looks like you planned 42 tests, but ran 0# Looks like you planned 42 test | 01:39 | |
autrijus | theorbtwo: what files were those? | 01:41 | |
eric256_ | final linking almost done! lol | ||
puetzk | hmm, actually -D_GNU_SOURCE is in the compile command line | 01:43 | |
so why *else* would crypt_data not be defined | |||
puetzk pokes | |||
autrijus | theorbtwo: note that you need a "make" before "make smoke" | ||
but "make test" will take care of that | |||
puetzk | any way to get it to dump the preprocessed header in between? | ||
autrijus | puetzk: not sure... ghc -v3 or something | ||
theorbtwo | -keep-temp -optc-keep-temps, or something very much like that. | 01:44 | |
It def built first. | 01:45 | ||
Might not have built completely, though. | |||
Various ext tests. Now that it's gotten to the core tests, it's doing much better. | 01:46 | ||
eric256_ | running test. so far so good | ||
autrijus | theorbtwo: yeah, I think it's because of stale pm_to_blib | ||
theorbtwo: in ext/ tree. you're running it off a svn checkout with previous builds, right? | 01:47 | ||
if so that's as expected | |||
theorbtwo | No, that was from a tarball. | 01:48 | |
autrijus | uh oh. | ||
"make smoke" or "make test"? | 01:49 | ||
theorbtwo | make smoke. | 01:50 | |
autrijus | ok. make smoke needs a make all first | 01:51 | |
fixing that | 01:52 | ||
thanks, fixed as r4313 | 01:54 | ||
gugod: can we have jabbot back as svnbot? | |||
at least before iblech's return | |||
gugod | sure | ||
autrijus | gugod++ | 01:55 | |
eric256_: how's the tests? | |||
puetzk | autark-jp: ok, ghc has -D_GNU_SOURCE, but it's not passing it through to gcc | ||
puetzk digs | |||
eric256_ | it is realy unhappy about some /builtines/system/01-strings-with-spaces file? | ||
NOK 127 and counting | 01:56 | ||
autrijus | oh wow. | ||
eric256_ | t/builtins/system/01-strings-with-spaces...........NOK 137pugs.exe: ./t/builtins | ||
y) | |||
autrijus | ok, thanks | ||
eric256_ | is it going to get over this and mov on? because its at 171 and still counting. | ||
autrijus | 322 | 01:57 | |
it's going to get over that | |||
jhorwitz | evening, lambdacamels. | ||
autrijus | yo jhorwitz | ||
puetzk | ah, but there's no -optc "-D_GNU_SOURCE" | ||
jhorwitz | autrijus: good to see you're alive. ;-) | ||
autrijus | jhorwitz: I'm sick but alive ;) | ||
theorbtwo | Evening, jhorwitz. | ||
puetzk | so the literate preprocessor (-optl) gets it, and haskel itself gets it (apparently haskell itself uses CPP?), but gcc didn't | 01:58 | |
jhorwitz | autrijus: just getting over something myself. | ||
autrijus | eric256_: that's the only failure so far? | ||
puetzk wonders if that means all the -D_LARGEFILE_SOURCE and such aren't working either, or if it's supposed to pass through | |||
eric256_ | yes | ||
autrijus | jhorwitz: got time to test pre2? | 01:59 | |
eric256_: ok, keep it running | |||
jhorwitz | autrijus: will do. | ||
eric256_ | hehe t/builtins/system/01-strings-with-spaces...........FAILED tests 2-323 | 02:00 | |
autrijus | pugscode.org/tmp/Perl6-Pugs-6.2.6-pre2.tar.gz | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | 02:00 | |
autrijus | jhorwitz: pugscode.org/tmp/Perl6-Pugs-6.2.6-pre2.tar.gz | 02:00 | |
jhorwitz | giddyup | ||
autrijus | eric256_: hm, Win2k? winxp? | ||
eric256_ | xp home | ||
autrijus | Corion will probably need to reinvestigate then | ||
for now I'm just disabling the entire test in pre2 | 02:01 | ||
theorbtwo: "make smoke" with pre2 should initialise the ext/ correctly now | |||
jhorwitz | autrijus: i assume parrot is now required for testing? | 02:02 | |
autrijus | jhorwitz: no, not really | ||
jhorwitz: the rules test will skip if parrot is not found | |||
at least that's the idea | |||
theorbtwo | Ugh, lots of missing people. | ||
jhorwitz | i'll test it anyway | ||
autrijus | k | ||
lunch, bbiab & | 02:03 | ||
theorbtwo | SamB, dakkar, broquaint, naesten, fireartist, mrborisguy, simon, puetzk, cdpruden. | ||
puetzk | theorbtwo: in fairness, autrijus added me about 15 mins ago :-) | ||
SamB | theorbtwo: missing from what? | 02:04 | |
autrijus | SamB: AUTHORS persumably | ||
puetzk | ah, -optl is the linker, -optL would be the literate preprocessor. Now this makes mrore sense | ||
theorbtwo | The AUTHORS file. | ||
puetzk | case-only distinctions are evil :-) | ||
SamB | um, no I'm not. | 02:05 | |
theorbtwo | Yeah, but you checked in code since then, so you should be in AUTHORS. | ||
Ah, but your line doesn't have "SamB", so my script couldn't see it. (It's not quite smart enough to figure out that Samuel is Sam. | 02:06 | ||
SamB | okay, want me to fix it? | 02:07 | |
theorbtwo | No, I will. | ||
SamB | right, makes sense. | ||
theorbtwo | The openfoundry people should probably buy ossf.org | 02:08 | |
Anybody know simon's last name? | 02:21 | ||
eric256_ | any one know if t/rules/perl5 takes a long time to run? | 02:23 | |
puetzk | hmm | ||
theorbtwo | Yes. | ||
eric256_ | good. i was worried it had stuck | ||
puetzk | and ghc -optc "-pipe" ends up passing -optc to gcc | ||
that's... weird | |||
theorbtwo | Try -optc-pipe -- no space. | ||
puetzk | same | 02:26 | |
theorbtwo ci's an updated AUTHORS. | 02:27 | ||
puetzk | it's the last argument passed too, which seems suspiscious | 02:28 | |
since everything else from -optc is before ghc starts passing filenames | 02:29 | ||
theorbtwo thinks it's sleep time for him. | 02:34 | ||
Oh, Aankhen, cpruden, gcomnz, mattc, simon: More information in AUTHORS would be quite welcome. | 02:35 | ||
eric256_ | autrijus that file had the only failures for me | 02:36 | |
how do i use the modules in the ext/ directory? | 02:37 | ||
gugod | weird... | 02:46 | |
autrijus | eric256_: you can "make install" and then "use" them | 03:05 | |
mrborisguy | theorbtwo: do you want me to do a commit for the sole purpose of putting my name in? sounds a bit pointless... but i will if need be | 03:06 | |
(and yes, i merely forgot again) | |||
autrijus | well, not "need" per se | 03:07 | |
simply that's kind of many people's first commit :) | |||
but I see | |||
Bryan "mrborisguy" Burgers | |||
already | |||
is that you? | |||
jabbot | pugs - 4316 - * cpan-upload.p6, the script we're going | ||
pugs - 4317 - * simon is simon cozens. also add sri. | |||
mrborisguy | oh, hey, yeah it is | ||
well then, i won't worry about it! | |||
great | |||
autrijus | =) | ||
anyone still running test for preflight? | 03:08 | ||
if not I think we're going to fly :) | |||
eric256_ | all went well here. make install in the base pugs directory? or do i need to make each module i want to use? | 03:11 | |
well by 'all went well' i mean all but that strings_with_spaces thing | |||
autrijus | in the base pugs | ||
nod | |||
eric256_ | that wont touch my perl5 at all though right? | 03:12 | |
i hadn't done a make install because i was worried about that | |||
autrijus | it won't touch perl5 | 03:13 | |
$ pugs cpan-upload.p6 Perl6-Pugs-6.2.6.tar.gz | 03:14 | ||
Using FTP to upload files to PAUSE | |||
uploading file "Perl6-Pugs-6.2.6.tar.gz" | |||
Enveigler | One minor itch. I found a bug in inc/Module/Install/Win32.pm a couple of days ago but couldn't commit because I don't have commit. | 03:17 | |
jabbot | pugs - 4318 - * This be Pugs ,version 6.2.6. | ||
autrijus | Enveigler: what was it? and what's your email so I can make you a committer? | ||
mugwump | how far away is yapc/hackthon? | 03:18 | |
autrijus | mugwump: 20 days | ||
Pugs 6.2.6 uploaded by cpan-upload.p6! | gttp://pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | 03:19 | ||
autrijus | Pugs 6.2.6 uploaded by cpan-upload.p6! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | ||
Enveigler | The bug is that - !$self->can_run('nmake') should be + !$self->can_run('nmake.exe'). I causes Makefile.pl to download nmake v1.5 whena later better version is available. | 03:19 | |
mupnmar02 at sneakemail dot com | 03:21 | ||
mugwump | cool. That gives me a deadline of 20 days to convert as much as S29 and Prim.hs to Perl-MetaModel classes as possible :) | ||
mrborisguy steals that email address for spam | |||
:D | 03:22 | ||
Enveigler: just kidding | |||
Enveigler | :) | ||
eric256_ | for =$tempfile { shouldn't that put the each line in $_ ?? | 03:53 | |
i ended up having to do for =$tempfile -> $_ { instead | |||
jabbot | pugs - 4319 - svnbot.p6 - Fixed some formating issues | 03:57 | |
autrijus | eric256_: that's weird | 04:02 | |
eric256_ | $0 and $1 only seem to work the first time accessed, but i'm still trying the narrow that down. | 04:04 | |
gaal | morn' | 04:11 | |
eric256_ | \nick eric256 | ||
gaal | wha-! release? | 04:12 | |
eric256_ | opps. | ||
gaal | sounds like i missed all the fun :-) | 04:15 | |
autrijus | sorry for that :) | ||
journal up. I'll nap a bit. bbiab | 04:16 | ||
gaal | heh, i was havin' fun asleep :-) night, er, morning, autrijus. | ||
jabbot | pugs - 4320 - * the usual props on cpan-upload.p6 | 04:17 | |
pugs - 4321 - Fix 'nmake' -v- 'nmake.exe' | |||
Enveigler | Gaal: Did you get the smoke report ? | 04:24 | |
gaal | checking | ||
think not, when did you send it? | |||
Enveigler | 8 hrs ago? | 04:25 | |
gaal | i'm checking the belly of my spam filter, hold on. | ||
Enveigler | 'K | ||
yome | Hi. Is there a channel more appropriate for Parrot discussion? Or is this the one? | ||
obra | #parrot on irc.perl.rog | 04:26 | |
org | |||
yome | OK thanks. | ||
gaal | oi, sorry Envigler, i hit 'd' on it this morning before i had cofee :/ | 04:27 | |
can you resend | |||
? | |||
mugwump | gaal, has that looping bug gone away for you in the Set tests? | 04:28 | |
gaal | (saw a random-looking address w/o a subject and 100k... ;-) | ||
mugwump, it hadn't, so i checked in a "skip_rest ; exit" in there :-) | |||
mugwump | sure, I saw that ...I assumed that the bug had been fixed, as I couldn't reproduce it | 04:31 | |
is it still happening for you on a current revision? | |||
or the 6.2.6 release version? | |||
(r4318) | 04:32 | ||
gaal | hm, let me check | ||
yikes! it's 7:30 | |||
i can't chekc | |||
sorry :) i have to $work early today | |||
i really have to go now. & | |||
mugwump | np | ||
later | 04:33 | ||
gaal | fwiw other people testing on win32 saw it too, work with Enveigler | ||
mugwump | ah, it's win32 specific. how strange | 04:34 | |
Enveigler | Sorry. I'm running nmake smoke and my screen is running like molasses. Strange. WHy won;t pugs.exe allow me to change it's priority? | 04:44 | |
japhy | so look-ahead is <before PATTERN>. this implies that rules can take arguments. | ||
so how is that defined? where is that argument for the rule to access? I don't see any mention of this anywhere | 04:46 | ||
grr! | 04:47 | ||
eric256_ | now that we have eval in pugs does evalbot need to use the .p5 helper? hhmmmm but then there is the Resource part. | 05:02 | |
nothingmuch | www.storewars.org/flash/index.html | 06:36 | |
06:36
castaway_ is now known as castaway
|
|||
jabbot | pugs - 4322 - * changelog: spelling nits from uri | 06:37 | |
pugs - 4323 - * ChangeLog: 80char fix. | |||
f0rth | there are 6 irc bots in examples/network, create a sub dir for them? | 06:46 | |
nothingmuch | f0rth: i think that's a good idea | 06:49 | |
drbean | just tried to build 6.2.6, but failed | 07:25 | |
scook0 | drbean: what went wrong? | ||
drbean | Parrot.hsc couldn't find parrot/packfile.h, interpreter.h, register.h | 07:26 | |
they are in my parrot build tree, but not in the tree where parrot got installed | 07:27 | ||
autrijus | drbean: that's right. you need to point PARROT_PATH to the build tree | ||
drbean: the parrot installation process is b0rken. | |||
drbean | Is PARROT_PATH supposed to be the build tree, or the installation tree. | ||
OK. I understand | 07:28 | ||
autrijus | japhy: those are calls. | 07:33 | |
<before Foo> merely calls Rule.before() to form a new rule | 07:34 | ||
japhy: <not before Foo> calls Rule.not(Rule.before()) | |||
and those methods are in turn dispatched to parameterised rules int he current grammar. | 07:35 | ||
japhy: see A05, "Defining Your Own Rules" | |||
bbiab & | 07:36 | ||
nothingmuch | Juerd: ping | 08:14 | |
first class signatures discussion: | 08:19 | ||
a signature is an object | |||
it can take two lists - parameters and invocants | |||
and produce a first class binding | |||
the binding is a reflective object | 08:20 | ||
allowing you to modify and query the bound parameters | |||
(parameters are first class objects too, they have context, slurpiness, namedness, etc) | |||
and when you are satisfied, to verify the where clauses | |||
and invoke the sub | |||
(from the binding) | 08:21 | ||
Optional: argument + invocants are a first class object too | |||
we have a new quoting operator: | |||
signature(); | |||
it's like a macro | |||
it takes the string inside () and makes a first class signature | 08:22 | ||
by creating parameters with certain info, parsed from the string | |||
function signatures can now be generated: | |||
sub foo is signature $sig { }; # or whatever the way is, it's documented in s06 i think | |||
probably done as | 08:23 | ||
sub foo is signature BEGIN { ... generate a signature object } { ... }; | |||
any thoughts? | |||
castaway | (woo, monologous :) | 08:24 | |
nothingmuch | =) | ||
castaway | I have absolutely no idea what you are on about, either :) | 08:27 | |
(blissful ignorance) | |||
nothingmuch | well | ||
you might like it | |||
castaway | Umm.. | ||
nothingmuch | function signatures are not enoug meta-meta-meta-meta IMHO | ||
this is a proposition for making an API | 08:28 | ||
castaway | signatures are the name/params bit ? (or also the "multi" etc?) | ||
nothingmuch | all of it | ||
it is the full description of the code: | |||
what it takes, | |||
what it returns | |||
how it behaves (it's type) | |||
it's attributes, maybe (is pure, is cached) | |||
castaway | Ok | 08:29 | |
so hows the API bit? | 08:30 | ||
nothingmuch | if you want a funky demo, grep for 'method dispatch' in docs/mmd.kwid | 08:32 | |
Juerd: I need some feather system administration help... please pong when you have 5 mins | |||
it's not the details of the API, just what it should give us | 08:34 | ||
my $s = &foo.meta.signature; | |||
$s.params ==> map { .name } ==> say; | |||
sub foo ($a, $b); will yield '$a$b' in that print | |||
say $s.params».context | |||
"ScalarScalar" | |||
i think | 08:35 | ||
my $b = $s.bind(1, 4); | |||
$b.invoke; # like foo(1, 4); | |||
method assuming (Code $c, *@args){ my $b = $c.meta.signature.bind(@args); return sub { $b.invoke(@_) } }; | 08:36 | ||
i like perl 6's meta meta ness | |||
you can describe most features of the language using other features | |||
the atoms are conceptually very few: closures, primitives, namespaces | 08:37 | ||
castaway | hmm, wasnt theorbtwo fiddling with someting about exposing params ? | 08:40 | |
nothingmuch | probably | 08:41 | |
i think we all thought about it at some point =) | |||
castaway | collaboration sounds clever here | ||
nothingmuch | announcement: I am starting an experiment | ||
castaway | hmm, and can you change the sig there? :) | ||
nothingmuch | castaway: i was thinking outloud | ||
so that I can get others to think | |||
feather.perl6.nl/~nothingmuch/harrorth/README | |||
the experiment is writing a haskell tutorial, as I am learning haskell | 08:42 | ||
castaway | cool | ||
nothingmuch | if anyone wants to follow, have fun | ||
castaway | I currently have 63 other things I want to do in my spare time.. need more hours in the day :) | ||
nothingmuch | castaway: i will post my concrete ideas on p6l once I have them so they can be discussed by others | ||
*cough*andeventuallywarnocked*cough* | 08:43 | ||
castaway | hehe | ||
well, should poke James harder.. (he keeps getting stuck places then giving up on things) | |||
clkao | nasty cpanupload.p6! | 08:49 | |
castaway | hmm? | 08:50 | |
nothingmuch | clkao: can I have the link to the we hate software images? | 08:52 | |
sri_ | what's the new name of $0? | 08:53 | |
nothingmuch | $/ i think | ||
s04 IIRC | |||
sri_ | it's not $/ | 08:54 | |
or not implemented... | |||
nothingmuch | oh wait! | 08:55 | |
sorry | |||
i got it mixed up | |||
$0 is $*PROGNAME i think | |||
$0 is now an alias to $/, or something like that. It's the rule match object | |||
PROGRAM_NAME | 08:56 | ||
t/magicals/progname.t | |||
sri_ | thats it :) | ||
thx | |||
castaway was about to say it should be something with an actual name.. | |||
clkao | nothingmuch: sure. | 09:01 | |
mugwump | yay! Broadband at home again ... at long last | 09:42 | |
castaway | grats :) | ||
scook0 | mugwump: you don't notice how important it is until it's gone... | 09:46 | |
mugwump | yup. it's a bit intermittant, sadly (long range wireless) | 09:49 | |
but during its good moments it's about 4ms ping | |||
this means I'm a lot more likely to do OSS at home now | 09:50 | ||
mugwump downloads ghc 6.4 onto his laptop at a lovely 350kB/s | 10:10 | ||
castaway | heh | ||
Enveigler is green with envy! | 10:15 | ||
nothingmuch | clkao: dum dee dum | 10:27 | |
clkao | *yawn* | 10:28 | |
nothingmuch | clkao: have a salad | ||
beats coffee any day | |||
did you find the links yet? | 10:29 | ||
clkao | what links? | ||
nothingmuch | for the 'We hate software" images | ||
oooh, sync problems | |||
"w | |||
clkao | opensource.fotango.com/~clkao/runap...ftware.jpg | 10:30 | |
nothingmuch | grazie! | 10:31 | |
Juerd | nothingmuch: pong | 10:38 | |
nothingmuch | beh | 10:56 | |
how much of that got through? | |||
castaway | of what? | 10:58 | |
(there was nothing after Juerds "pong") | |||
nothingmuch | network problems | 10:59 | |
castaway noticed | |||
nothingmuch | castaway: i need db2 help | 12:02 | |
what's the name of the interactive shell? | |||
castaway | "db" :) | 12:03 | |
ehh.. "db2" | |||
nothingmuch | hah | ||
castaway | I usually skip it and run things like: db2 "select ... " | less -S, tho | ||
nothingmuch | okay, that's good | ||
castaway | (thaht is, after doing the connect) | 12:04 | |
nothingmuch | how do i do the connect? | ||
castaway | db2 "connect to <dbalias> user <user> using <password>" | ||
nothingmuch | state persists between procs? it knows how to call the correct db2agent? | 12:05 | |
castaway | its quite nice in that your shell just stays connected, and you can do whatever.. disconnect with: db2 "terminate" when done | ||
I think the answer to that is yes :) | |||
nothingmuch | goody =) | ||
castaway | what're you up to, anything fun? | 12:06 | |
jabbot | pugs - 4324 - * 100% Haddocks for Context.hs | 12:07 | |
castaway | oh, jabbot is back, where'd the other announcerbot go? | 12:08 | |
nothingmuch | castaway: we have an AIX box with 8gb of ram | ||
and, for fun, aix can't meter mmap'ed memory | |||
or malloc blocks larger than 256 | |||
so if a program needs lots of memory, it usually mmaps | 12:09 | ||
and we can't know how much | |||
we're trying a big pull from db2 | |||
and we want to see who is the guilty party | |||
castaway | ah, fun | ||
nothingmuch | because the box uses 7900MB of ram, and then swap-thrashes | ||
castaway | wow thats a loz | ||
lot | |||
nothingmuch | yup | 12:10 | |
for a fetch with no order or anything this is really a lot | |||
plain old fetch without aggregation on our side is about 5000mb | |||
and now i'm trying to see if it's our data fetching code, or db2agent or something like that | |||
castaway nods | 12:11 | ||
how many millions of rows of data are we talking about? | |||
castaway wonders how much ram our AIX boxes have | |||
nothingmuch | 200,000,000 | ||
castaway boggles :) | |||
nothingmuch | hah | 12:14 | |
castaway | whats all that for? | 12:15 | |
nothingmuch | db2 connect to db... \n | ||
<delay> | |||
then it finishes | |||
5gb taken | |||
the delay is the time it takes to actually allocate the data | |||
this is absurd | |||
castaway: that's just to emphasise what I typed in the terminal | |||
castaway | ummm ? | 12:17 | |
nothingmuch | doing db2 connect causes a db2agent to start | ||
that db2agent allocates 5gb of memory | |||
and then I can start working | 12:18 | ||
castaway | eh? | ||
ouch | |||
wtf? | |||
nothingmuch | since our product is configured to use 5.5 gb of memory for aggregation | ||
castaway | Oh, it preallocates? weird | ||
nothingmuch | this slurps in about 30,000,000 records | ||
and then the thrashing starts | |||
since we would need 2.5 extra gb | |||
Juerd | 30M records of how much bytes? | 12:28 | |
I've used 30M record tables in sqlite even, so that says nothing :) | |||
Hi L~R | |||
Limbic_Region | hey Juerd - how's tricks? | 12:29 | |
Juerd | tricks? | ||
castaway | guess he's no magician | ||
hey limbic | |||
Limbic_Region | it's an expression | ||
Juerd | Everything is an expression. | 12:30 | |
Limbic_Region | just means how's it going | ||
Juerd | Or a statement. | ||
Limbic_Region: How is what going? | |||
Limbic_Region hugs castaway | |||
castaway hugs back | |||
Juerd | Can I join the hug? | ||
castaway | life, the universe, and everything! | ||
castaway hugs Juerd too | |||
Juerd | *hug* | ||
Limbic_Region thinks it is too early in the morning for Juerd's literalism | |||
Juerd | life is going well enough, the universe is about to implode, everything is hardly developed anymore. | 12:31 | |
castaway | :) | ||
Juerd | neodymium magnets ++ | ||
Amazingly strong for 5x5x5mm | |||
Limbic_Region is begrudgingly getting used to using IE again | 12:32 | ||
Juerd | Limbic_Region: Huh? Why? | ||
Limbic_Region: Do you require medical attention? | |||
Limbic_Region | local policy I guess | ||
Juerd | I know a good psychiatrist | ||
Limbic_Region | all of a sudden FF stopped working unless I went through some bizarre incantation and rain dance | 12:33 | |
Juerd | Get a new one then | ||
Or run X remotely :) | 12:34 | ||
Limbic_Region | Juerd - basically all ports have been locked down and HTTP is forced through a proxy | ||
the only way to get around this is to knowingly circumvent security | |||
not that I haven't figured out how to do that | 12:35 | ||
but it is pretty hard to plead ignorance | |||
Juerd | Limbic_Region: Does this proxy support CONNECT? | ||
Can't you ssh? | |||
Limbic_Region | no ssh | 12:36 | |
Juerd | How are you connected to IRC? | ||
Limbic_Region | cgiirc | ||
perlmonk.org is actually connecting to IRC | |||
Juerd | You must really hate your employer. | ||
Limbic_Region | I am merely viewing a web page | ||
not really | |||
they do it for good reason | |||
Juerd | But the reverse even more so: they must really hate you. | ||
Limbic_Region | *shrug* - they probably don't think anything of me at all | 12:37 | |
Odin-LAP | Don't they always? :p | ||
Juerd | Limbic_Region: How is that? | ||
And what about dns-tunnels, or http-tunnels? | 12:38 | ||
What is your job anyway, that you can do it with such limitations? | |||
Limbic_Region is an information technology specialist for the US Government | |||
and it doesn't matter if I CAN get around the restrictions - the point is I would lose my job (and likely other things as well) if I did | 12:39 | ||
Juerd | An IT specialist with only web access? Weird. | ||
theorbtwo | L~R: Are your ports only cut off from the outside world, or do they expect you to admin boxes that you can only http to? | ||
Er, s/from the/to the/ | 12:40 | ||
Limbic_Region | it is actually much worse than you think | ||
Juerd | Is that possible? | 12:41 | |
Limbic_Region | but I can't really talk about that | ||
theorbtwo | Ah. | ||
Even more fun. | |||
Juerd | You work for the US government and you have only access to the web, and you say it's even worse than that? | ||
That's surprisingly hard to believe ;) | |||
theorbtwo | Juerd: I'd tend to believe him anyway. | ||
Juerd | (Oh, for the sniffers: come and visit me at einsteinstraat 67, 3316 gg dordrecht, the netherlands ;)) | 12:42 | |
theorbtwo | He works for a segment of the government that has a reputation, and possibly even a policy, of being even more paranoid then the rest of the US government. | ||
Juerd | But paranoia and productivity don't go together | ||
How do they get anything done? | 12:43 | ||
theorbtwo | Juerd, what makes you think they get anything done? | ||
This is the US government we're talking about. | |||
Limbic_Region | listen - I don't really feel comfortable talking about the particulars of my work environment | ||
Juerd | Limbic_Region: Sorry | ||
theorbtwo: Hmm.. | |||
theorbtwo | Sorry. | ||
Limbic_Region | it is a PITA, but what it really means for my work in perl6 is that I will only be able to use nopaste | 12:44 | |
at least while I am at $work | |||
Juerd | Limbic_Region: Perhaps we can set up a web based shell interface for you, on feather. | ||
Limbic_Region | now that would be neat | ||
Juerd | Limbic_Region: Your using CGI:IRC indicates that you can use long lived http connections. | ||
Limbic_Region: Can you use https though? | 12:45 | ||
Limbic_Region | yes | ||
but also forced through a proxy | |||
Juerd | https can't be proxied :) | ||
It's a direct feed - and there is your chance to connect to anything if the other side is prepared to listen | 12:46 | ||
Limbic_Region checks his settings again | |||
perhaps all it is doing is NATing | 12:47 | ||
Juerd | IIRC, https proxying is simply supporting the CONNECT request | ||
Which essentially turns the proxy into a port forwarder (hint) | |||
Limbic_Region | but I assure you - my machine which is currently connected to gmail via https has no connections with a public IP address | ||
Juerd | That's possible. | ||
puetzk | Juerd: well, one can get more evil than that and substitute the cert :-) | ||
I've seen that done, though it triggers a browser warning (as it should) | |||
Juerd | puetzk: Which would be noticed instantly, by clueful personell. | 12:48 | |
Limbic_Region | so in other words, I have to direct all my outbound traffic to a specific host - if it is doing more than NATing is unknown to me | ||
theorbtwo | OTOH, https is designed to protect against man-in-the-middle attacks, and to be proxiable, without being seen by the proxier. | ||
Juerd | Limbic_Region: google for stunnel | ||
theorbtwo | puetzk: They could have disabled that warning, however. | ||
puetzk | theorbtwo: right | ||
Juerd | I was inaccurate | ||
It can be proxied, but not be cached (because the data is unknown) | 12:49 | ||
puetzk | by making the substituted cert's CA known to the browser in their desktop baseload | ||
then they can write forged certs to their heart's content | |||
it's still rare | |||
theorbtwo | Note that there's not even anything that says that Limbic isn't running a version of IE with modified code; it's public knowladge that the US government has a source-code license. | ||
Limbic_Region | in any case - it isn't like I am integral to the success of Pugs | ||
I am only generating p6 code anyway | |||
not Haskell | |||
castaway | *only*? | ||
Limbic_Region | I can get by with nopasting stuff | 12:50 | |
castaway | theres no only, here | ||
puetzk | Limbic_Region: of course, svn passes most HTTP proxies | ||
Limbic_Region | puetzk - against policy | ||
puetzk | Limbic_Region: why? it's plain HTTP | ||
well, DAV | |||
it's not tunneling, it's just actually HTTP | |||
Limbic_Region | because I am downloading stuff from an untrusted source | ||
its the same as saying you can't visit naughty sites | 12:51 | ||
puetzk | oh, having svn is not OK | ||
gotcha | |||
as opposed to using it being the problem | |||
theorbtwo | It seems like the best solution is the shell on feather. | ||
That way any untrusted code runs on feather, not your machine. | |||
Limbic_Region | no - the best solution is for me to do nothing that may jeapordize my job until I have had a chance to talk to someone in security that I can trust not to make rash judgements | 12:52 | |
Juerd | Limbic_Region: You could publish files on feather using webdav, and then have an irc bot execute things | ||
:) | |||
You know how to request an account if you want one (if you don't already have one) | |||
Limbic_Region | I do, I thank you, and I just might | 12:53 | |
Juerd | Hm | ||
Limbic_Region | for now I am off to read use.perl journals | ||
theorbtwo | Or have a IRC/ssh tunnel, and use that, though the inability to type plus might kill that idea. | ||
Juerd | Even simpler: write CGI scripts that use pugs :) | ||
You can run your personalized apache and use one cgi script to tail the error log | |||
theorbtwo: He's using http for irc | |||
puetzk | Juerd: one would assume if browsing svn.openfoundry.org/pugs is verboten, that using IRC is too :-) | 12:54 | |
Juerd | theorbtwo: Through a CGI gateway | ||
theorbtwo | Juerd: He can run his own apache and still have it on port 80? | ||
Juerd: I know. | |||
Juerd | theorbtwo: Why is port 80 required? | ||
theorbtwo | Because that's the only port he can see. | ||
Juerd | (If necessary, I can assign feather a second IP, but it shouldn't be) | ||
theorbtwo | Hm, possibly not. | ||
Juerd | theorbtwo: He hasn't said that here. | ||
theorbtwo | Yeah, I just thought it over again, and he didn't, my bad. | 12:55 | |
Juerd | [gemeente dordrecht]++ # they have a ticketing system for stuff like broken traffic lights | 13:04 | |
webmind | netjes | 13:05 | |
theorbtwo | Very cool, Juerd. | ||
Juerd | cms.dordrecht.nl/dordt?nav=wmrkIsHa...waBjqaBhHL | 13:06 | |
Limbic_Region | question - anyone know how to uninstall firefox? | 13:13 | |
castaway | on what? | 13:15 | |
theorbtwo | Add/Remove programs? | ||
Limbic_Region | Windows - and that doesn't work theorbtwo - I think it has to do with the fact that I didn't have admin rights when I installed it | ||
nevermind me - I will figure it out | |||
PerlJam | good morning #perl6 | 13:16 | |
Juerd | Limbic_Region: Remove its directory and syml^H^H^H^Hshortcuts to it, and it's practically gone. Windows is never clean anyway, so why try? | 13:17 | |
PerlJam | I was just looking over the release announcement ... What's with the "exclusive range" ops? Is that a pugs feature or was that specced somewhere? | ||
Juerd | PerlJam: Specced | ||
I think they're overkill. | |||
We know how to +1 or -1, thank you. | 13:18 | ||
Before you know it, every string operator will have a case insensitive variant | |||
puetzk | Juerd: of course, if they work on floats that could be interesting | ||
but they probably don'e :-0 | |||
integral | the problem is that there's no way to tell the difference between a float and an int... | 13:19 | |
plus ranges on enumerable types, and intervals on continuous types are quite different | |||
Limbic_Region | IE crisis averted | 13:36 | |
;-) | |||
jabbot | pugs - 4325 - Enveigler | Allow pugs to find 'ghc.exe' | 13:37 | |
sri_ | ported FindBin | 13:53 | |
autrijus | sri++ sri++ | 13:56 | |
jabbot | pugs - 4326 - Ported FindBin | 13:57 | |
sri_ | jabbot: you're slow | 13:58 | |
jabbot | sri_: Perhaps you would like to be slow. | ||
Limbic_Region | autrijus - of the 4 things that need to be done to get svn.openfoundry.org/pugs/examples/c...scoring.p6 working - which one in your opinion requires the least amount of work (or rather, the least amount of Haskell skills) ? | ||
autrijus | remind me -- which 4? | ||
oh got it | |||
commits++ | 13:59 | ||
Limbic_Region | # Bug 1 - t/pugsbugs/return_with_trailing_stuff.t | ||
# Bug 2 - t/pugsbugs/postincrement_in_subscripts.t | |||
autrijus | yeah, got them | ||
Limbic_Region | # Feature 1 - t/operators/hyper.t (hyper dereferencing) | 14:00 | |
oh | |||
sorry | |||
Limbic_Region is doing multiple things at once again | |||
it is sooooo nice to have tabbed browsing back | |||
autrijus | well hm. | ||
hyper deref requires some work in src/Parser.hs | |||
clkao | autrijus++ # cpan-upload.p6 | ||
PerlJam | surely last LABEL can't be too difficult. | ||
autrijus | but if you have elementary haskell utilz that's trivial | ||
last LABEL is merely turning | 14:01 | ||
FOO: { ... } | |||
into | |||
my sub FOO { ... } | |||
Limbic_Region | this would be my first introduction to Haskell | ||
autrijus | I think. it's probably a hack, but it probably works | ||
PerlJam | Limbic_Region: have you been exposed to FP before? | ||
Limbic_Region | no PerlJam | ||
autrijus | all four is about equally difficult | ||
Limbic_Region | great | ||
autrijus | hyper deref will make you learn about parser :) | ||
which is considerably easier than the rest of source code | 14:02 | ||
so maybe that first | |||
Limbic_Region guesses he will wait for a rainy day | |||
autrijus | Limbic_Region: basically we already have &infix:<.{}> | 14:03 | |
so hyper deref is just adding the >>.{} form to parser, that's all | |||
theorbtwo | .{} is infix? Shouldn't it be postcircumfix? | ||
autrijus | good catch. | 14:04 | |
feel free to fix the Prim entry | |||
clkao | autrijus: got time to look at rw array? | ||
autrijus | clkao: no. | ||
clkao | *stunning silence* | 14:05 | |
autrijus | clkao: I'm fried... ;) | 14:07 | |
<- just went back from $w0rk | |||
and I need to 1)shower 2)sleep | |||
Limbic_Region | theorbtwo - will you have time tonight or tomorrow night (my time) to help me with a little Haskell ? | ||
theorbtwo | Limbic, should. | 14:09 | |
...I think. | 14:10 | ||
Limbic_Region | ok - will ping you | 14:12 | |
$foo.chars will return the number of chars in $foo - is there a way (other than split) to get the actual chars themselves ? | 14:21 | ||
PerlJam | Limbic_Region: substr() :-) | ||
theorbtwo | substr should work. | ||
Limbic_Region | how so? | 14:22 | |
I guess I should read S29 huh | |||
theorbtwo | The quick answer is "just like p5". | 14:23 | |
Limbic_Region isn't sure how he would use substr() in p5 without first getting the length of the string and repeatedly calling substr() for each position with a length of 1 | |||
sproingie | so strings still aren't subscriptable? | 14:24 | |
sproingie ARGH | |||
theorbtwo | That would feel very strange to me. | 14:25 | |
Limbic_Region | PHPish IIRC | ||
theorbtwo | When you have a reference with overloaded stringification, and use a subscriping operator, does it dereference, or stringify? | ||
Limbic_Region | what I am trying to do is the equivalent of split //, $foo; | ||
theorbtwo | I think just like in p5. Possibly chars in list context does that? | 14:26 | |
Limbic_Region | I was hoping theorbtwo | ||
PerlJam | Limbic_Region: why the restriction on using split though? | ||
Limbic_Region | but say list $foo.chars still says 4 | ||
PerlJam - not a restriction really - just trying to learn more of the language | 14:27 | ||
PerlJam | oh | ||
Limbic_Region | I often do that by taking a relatively simple problem and intentionally handi-capping myself | ||
my favorite way to do that is to say "no regexen" | |||
PerlJam | Limbic_Region: well, I believe that $foo.chars in a list context actually gives you the chars (or it's supposed to) | ||
Limbic_Region | oh - well if that's the case it is b0rk | 14:28 | |
.chars .bytes etc replaced length right? | 14:29 | ||
PerlJam | right | ||
Hmm. I can't find it in the AES where I got that .chars in list context gives the chars as a list, so either I made it up or it was said on p6l or something | 14:32 | ||
Limbic_Region is still looking | |||
sproingie | subscripting a reference with overloaded stringification would simply be ambiguous | 14:33 | |
you'd pick one behavior and use it. god knows perl doesn't normally shy away from ambiguity | |||
lumi | It's not supposed to, but it should be supposed to | ||
Limbic_Region | PerlJam - lots of references | ||
A02, A05, A12, E05, S05, S26 | 14:34 | ||
Limbic_Region is going to investigate further | |||
drbean | 9 rules tests and 170 subtests failed for me in 6.2.6 | 14:37 | |
Limbic_Region | ok - I don't see anything that says it should do it so I will ask on p6l | 14:39 | |
sri_ | how do i define additional methods for a class at runtime? | 14:45 | |
theorbtwo | sri_: method Foo:newmeth(Foo $self: ...), I think. | 14:47 | |
sri_ | hmm...then it's a bug in my code :/ | 14:52 | |
pugs needs more verbose parse errors | |||
sproingie | hey, i used ed, '?' is error enough for real men | 14:53 | |
sri_ | you're sooo 1960's :) | ||
sproingie | 70's anyway | 14:58 | |
mainframe editors actually had decent ui. ed was small first, functional second ... or more like third or nineteenth or so | 14:59 | ||
i suppose it made more sense on teletypes | 15:00 | ||
PerlJam | Limbic_Region: A virtual $10 says you get warnocked :-) | 15:09 | |
Limbic_Region | PerlJam - that's perfectly alright | 15:11 | |
I will just ask again in a month or so | 15:13 | ||
Limbic_Region is persistent | |||
Limbic_Region likes the thought of being able to do something terribly inefficient like say "there is a letter" if any( $str.chars ) eq any( 'a'..'z', 'A'..'Z' ); | 15:18 | ||
Khisanth | persistence is futile! | ||
Limbic_Region | Khisanth plus plus | ||
Boogie | join catalyst | 15:19 | |
Boogie says oops | 15:20 | ||
sri_ | :) | 15:22 | |
Boogie | anyway, I'm interested in joining to Catalyst. Catalyst6. | 15:23 | |
sri_ | that'll take some time... | ||
Boogie | Autrijus wrote about it in his blog, but i found no info about it. | ||
sri_ | still porting prereqs | 15:24 | |
Juerd | Does anyone happen to know how to reset a 3com switch? | ||
Boogie | sri_: I have not much time, but would like to help. I have a lot of ideas. | ||
Juerd: no reset switch on it? | 15:25 | ||
sri_ | pugs -e 'class Foo; eval "method foo (\$self:) { return \$self }"' | 15:28 | |
isn't this supposed to work? | |||
nothingmuch | evening! | 15:31 | |
sri_ pokes autrijus | |||
nothingmuch also pokes autrijus | 15:32 | ||
Limbic_Region | sri_ - autrijus mentioned needing a shower and sleep | 15:33 | |
sri_ | dammit... | ||
Khisanth | hmm | 15:37 | |
Juerd | Boogie: No | ||
Khisanth needs to figure out how to abuse [] | 15:38 | ||
nothingmuch | Khisanth: the reduce meta operator? | ||
Khisanth | :) | 15:40 | |
Boogie | sri_: your pugs code works for me. just don't escape $, and use ' for eval | 15:44 | |
sri_ | i need a dynamic method name | ||
Boogie | pugs -e "class Foo; eval 'method foo ($self:) { return $self }'" | ||
you mean: pugs -e "class Foo; $mn='hey'; eval 'method '~$mn~' ($self:) { return $self }'" | 15:45 | ||
sri_ | good idea! :) | 15:46 | |
stevan | sri_: you might be able to (eventually) do that through the meta-model | 15:47 | |
but thats no use to you now :) | |||
sri_ | yea, confuse me even more! :P | ||
stevan | :) | ||
sri_: I will port the Tree::Simple::Visitor stuff for you this weekend | 15:48 | ||
sri_ | nice! | ||
stevan | BTW - I switched from CamelCase to perl_style for Tree | ||
stevan has finally seen the "light" | |||
sri_ hugs stevan | 15:49 | ||
stevan | :) | ||
wolverian | yay! | ||
stevan | sri_: you should consider putting a ext/Catalyst6 folder into pugs | ||
and at the very least, having a list of pre-reqs that need porting | 15:50 | ||
Boogie | guys, is there a plan of Catalyst6? | ||
stevan | I am sure people will help out :) | ||
sri_ | as soon as i have File::Find::Rule working | ||
Boogie | yes, stevan++ | ||
stevan | nice | ||
sri_ | don't think there are more prereqs :) | ||
stevan | oh, even better | 15:51 | |
sri_ | well, i'll need real trait support...but autrijus promised to work on it | ||
stevan | sri_: trait or role? | ||
sri_ | trait | ||
for actions | 15:52 | ||
stevan | traits are a little of fuzzy in S12, what exactly do you need | ||
sri_ | method foo is Path('/lalala/foo') | ||
stevan | as i understand them, traits are compile time roles on crack | ||
sri_ | i guess trait_auxiliary:is is what i need | 15:53 | |
stevan | so are you just tagging meta-data there? or is it altering the method? | ||
sri_ | meta data | 15:54 | |
stevan | what uses the meta-data? the dispatcher? | 15:55 | |
sri_ | yes | ||
stevan starts dreaming of custom meta-level method dispatchers :) | |||
jhorwitz | anyone with apache2 here have some cycles to test mod_pugs? | ||
sri_ | hmmm... | 15:56 | |
Boogie wonders if somebody there who porting a Class::DBI like thing? | 15:57 | ||
stevan | Boogie: I have had some thoughts on ORM system for Perl6, but I never liked CDBI, so it will not be similar | 15:58 | |
nothingmuch and I talked them out a bit | |||
from what I know of Class::DBI, I think it could be made much nicer through Roles too | |||
sri_ | cdbi is nice imo | 15:59 | |
it could be better indeed | |||
stevan | sri_: it does the job, but its not really O/R | ||
sri_ | you like tangram? :) | ||
stevan | never used it | ||
Boogie | I don't know Class::DBI. I just like the idea. I would like to use something like Ruby on Rails, if you know it. | ||
sri_ | thats cdbi ;) | 16:00 | |
Boogie | OK. So cdbi++; | ||
stevan | we have a in house system, which is starting to show it's age (going on 2 1/2 years now) | ||
the system is more Tangram/SPOPS-ish than CDBI | |||
Boogie | My idea is to let's create an ext/Catalyst6 dir, and put there the ideas we have. | 16:01 | |
stevan | with a lot of IOC in the middle to handle all the dependency relationships | ||
sri_ | Boogie: Cat6 will be quite like Cat5 | ||
Khisanth | Cat5e :) | 16:02 | |
stevan | Cat6.1 :) | ||
sri_ | all models and views are just addons | ||
it doesn't matter if you use cdbi or tangram or whatever | |||
it's just glue | |||
Boogie | So, should I start to hack on another project, that's like Rails? | ||
stevan | yup, thats why I like Catalyst so much :) | ||
sri_++ | |||
sri_ | Boogie: if you like... :) | 16:03 | |
but rails was made for ruby | |||
stevan | sri_: so the plan now is to do a straight port | ||
sri_ | it's less flexible | ||
Boogie | sri_: I would like to create a thing, that will be used... ;) | ||
sri_ | stevan: i'm always open for new ideas | ||
but it's already quite good imo | 16:04 | ||
stevan | sri_: I am not thinking of changing the design so much, as just perl6-ifying it more | ||
sri_ | Boogie: maybe join perlonrails.org *eg* | 16:05 | |
stevan: indeed | |||
stevan proabably doesn't actually know enough Catalyst to be saying this though | |||
Boogie | sri_: I've checked Catalyst some weeks ago, and It was too much typing for me. ;) | ||
sri_ | wait, much typing? | 16:06 | |
you kidding? | |||
stevan | Boogie: catalyst seems to be moving a Pugs speed, so a few weeks might be ancient | ||
sri_ | take a look at the upcoming perl.com article, ajax powered wiki in less than 30 lines of written code ;) | ||
Boogie | sri_: At first, it's possible I don't know it well. I've checked it after Rails, and it was my impression. | 16:07 | |
sri_ | oh well, we so have to make videos too... | ||
:) | |||
Boogie | sri_: I agree. Maybe I just didn't catch the idea enough. :) | ||
As I can imagine, Catalyst on Perl6 will be much cleaner and shorter, than Catalyst for Perl5. | 16:09 | ||
sri_ | much | ||
stevan | sri_: so will you be developing Cat6 in the Pugs tree? | ||
sri_ | mhm | ||
Boogie likes stevan's idea. | |||
sri_ | i'd like to have a mason port too | 16:10 | |
and cdbi :) | |||
stevan | you can always use perl5 embded for now | 16:11 | |
sri_ | don't think that would work so well with cdbi | 16:12 | |
gaal | hullough! | 16:23 | |
stevan | hey gaal :) | ||
gaal | Enveigler about? | ||
Limbic_Region | salutations | ||
gaal | heya stevan, L~R | ||
theorbtwo | Oh, stevan, fix your AUTHORS entry, please. | 16:25 | |
stevan | ? | ||
whats wrong with it? | |||
theorbtwo | Oh. Nevermind. | 16:26 | |
I was thinking of simon, not stevan, and that's fixed. | |||
Limbic_Region | woah - I just thought of a way of doing arbitrarily nested loops - I wonder if it is the same way tye does it in Algorithm::Loops | 16:28 | |
Limbic_Region needs to try this in p6 | |||
gaal | heh heh heh. dvdrewinder.com/index.php?main_page...ducts_id=1 DVD Rewinder. | 16:36 | |
sri_ | a Data::Dumper port would be nice too | 16:40 | |
stevan | sri_: we have .perl() already | 16:41 | |
sri_ | oh :) | ||
nice | 16:42 | ||
stevan | ye ask and ye shall receive :P | ||
Limbic_Region | ok - I want to define a sub that has 1 required parameter (an array), and 2 optional parameters (a hash and a code ref) - what is the proper way to say that? | 16:44 | |
sub foo (@array, ?%foo, ?$ref) {...} ? | 16:45 | ||
stevan | or foo(@array, +%hash, +$code) | ||
Limbic_Region | I thought meant named parameter not optional? | ||
or does that equate to the same thing? | |||
stevan | that allows you to do: foo([1, 2, 3], code => sub {}) | ||
named and optional IIRC | 16:46 | ||
Limbic_Region | and that space there was a plus that got eaten | ||
stevan | with ?$foo I think you are stuck with positional only | ||
let me check the tests, one second | |||
Limbic_Region | ahhh | ||
found it | 16:47 | ||
named parameters are optional unless marked is required | |||
stevan | yup | ||
Limbic_Region | so you way is best then | ||
stevan | of course ;) | ||
although come to think of it, your way should behave the same | 16:48 | ||
that is how much of the Test.pm subs work | |||
Limbic_Region | positional is problem | ||
not in my case | |||
but it could be | |||
stevan | I dont think it forces positional though | ||
the ? that is | |||
look in Test.pm, they all use ?$todo, and that is not postional | |||
so I was wrong there | 16:49 | ||
Limbic_Region | stevan - problem is what happens if you have two optional (un-named) of the same type | ||
stevan | actually + and ? look fairly interchangable | ||
Limbic_Region | is HAS to be position or else there is no way of knowing which it is | ||
stevan | true | ||
Limbic_Region | so I am going with all named - 1 marked is required | 16:50 | |
stevan | so using named forces people to DWTM | ||
Limbic_Region | hopefully that is supported already | ||
stevan | L~R, looks like it | ||
in t/subroutines/sub_named_parameters.t it is not TODO | 16:51 | ||
Limbic_Region | stevan - I don't see any "is required" in that test file? | 16:53 | |
stevan | line 70 | ||
sub mandatory (++$param) {} | |||
Limbic_Region | oh - I guess I should read the blurb at the top since that disagrees with A06 | 16:54 | |
perhaps it was changed in S06 | |||
nope | |||
I think the plusplus is wrong | |||
according to the docs - that should be done with the "is required" trait | |||
oops | 16:55 | ||
s/wrong/not official/ | |||
it does say that plusplus is an alternate that MAY be considered | 16:56 | ||
*shrug* - I will just use the plusplus since apparently it is what Pugs has now | |||
ok - now how do you define a list of array references - something with a semi-colon? | 17:01 | ||
my @foo = (1,2,3; 4,5,6; 7,8,9); | 17:02 | ||
? | |||
theorbtwo | ?eval (1,2,3;4,5,6;7,8,9) | ||
evalbot6 | Error: unexpected ";" expecting digit, fraction, exponent, term postfix, operator, "," or ")" | ||
Limbic_Region | theorbtwo - hence the question (something with a semi-colon)? | 17:03 | |
theorbtwo | I remember Larry redefined how to do it when he introduced the [] metaoperator. | 17:04 | |
Limbic_Region | ?eval ([1..3],[4..6],[7..9]) | 17:07 | |
evalbot6 | ([1, 2, 3], [4, 5, 6], [7, 8, 9]) | ||
Limbic_Region | that appears to be doing the right thing but I am not sure if it is supposed to | ||
theorbtwo | That's certianly supposed to do that, but the question is if there is a better way to do it... and if we care. | 17:08 | |
Limbic_Region | well, I for one care | 17:09 | |
and that's what I meant - supposed to meaning supposed to be the best way | |||
theorbtwo | The mail you want is "reduce metaoperator", by Larry, 05/04/05 14:36. | 17:13 | |
[email@hidden.address] if you can figure out how to search by message-id. | 17:14 | ||
OTOH, it looks to be somewhat unimplemented. | |||
Limbic_Region | why would searching by msgid be any different then subject line or body? | 17:15 | |
just c/p into the search bar | |||
wolverian | Limbic_Region: what mail client are you using? | 17:49 | |
if I may ask :) | |||
geoffb | allo | 17:53 | |
Warning: trying to read everything linked from the Perl 6 summary in one sitting may result in Cranial Liquefaction, a potentially debilitating disorder. | |||
cognominal | ho, that would explain the liquid dropping from my head. | 17:59 | |
wolverian | you read the summaries? weakling, I read the original posts. :) | 18:00 | |
stevan | HAH!,... real perl6 hackers read the Apocolypses :P | 18:01 | |
wolverian | yes, but that gets boring after the first few years. | 18:02 | |
stevan | : D | ||
cognominal | Apos are old news... | ||
Limbic_Region | wolverian - several of them | ||
Juerd | Literally. | ||
Limbic_Region | were you asking how I was searching for msgid? | 18:03 | |
or for some other reason | |||
Limbic_Region now has a working implemenation of arbitrary nested loops in p6 | |||
Limbic_Region still needs to add a few of the features from Algorithm::Loops such as onlywhen and code blocks - but so far so good | |||
perlbot nopaste | 18:04 | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
geoffb | wolverian, I get enough mail already. I think my mail reader would go on strike if I added the load of all perl6-* lists. | ||
Limbic_Region | I hate when that happens | 18:05 | |
wolverian | Limbic_Region: nah, I was just curious what kind of a client you prefer. | ||
pasteling | "Limbic_Region" at 129.33.119.12 pasted "Arbitrarily Nested Loops in p6 - though not very p6ish I don't think" (24 lines, 669B) at sial.org/pbot/10665 | 18:06 | |
wolverian | geoffb: heh. I'm subscribed to the ubuntu-* lists as well. imagine that. :) | ||
Limbic_Region | wolverian - I use gmail, yahoo mail, outlook, mailx, pine, elm - whatever is available | ||
wolverian | Limbic_Region: ah, okay. | ||
geoffb | wolverian, you must be crazy. Or have spent a very large block of time tuning your mail reading skills | 18:07 | |
wolverian | Limbic_Region: that is very unperl6ish. I think the idea is to use coroutines for this kind of a thing, and 'for' instead of 'while'. it's all pretty much unspecced right now I think, though. :) | ||
geoffb: I don't read all the ubuntu-* mails. | 18:08 | ||
Limbic_Region | wolverian - here is the trouble | ||
I think in p5 | |||
when I am writing p6 I am really just translating the p5 in my head | |||
wolverian | right. that's a common problem, I think. | ||
you need a more functional mindset | |||
Limbic_Region | well - from a p5 perspective - that is pretty freaking functional | 18:09 | |
geoffb | wolverian, that's why I read the p6 summaries -- to get a clue as to which threads I care about. Reading every last email would leave me with no coding time. :-) | ||
Limbic_Region, wolverian: yeah, I suspect that p5-think will be an issue for a while. I know it will be for me . . . . | |||
Maybe I need to follow the path someone else started on today and learn Haskell and Forth at the same time, just for brain expansion purposes | 18:10 | ||
Juerd | my @pos = (0) xx (@loop.elems - 1), -1; | 18:11 | |
The former () are bad style now. | |||
wolverian | is prefix:<=> specced? | ||
Juerd | ++@loop | ||
What's ++@loop? (in a signature) | |||
Limbic_Region | Juerd - apparently an alternative to "is required" | 18:12 | |
Juerd | Aha | ||
Limbic_Region | according to S06, named parameters are optional unless marked "is required" | ||
it goes on to say, alternatively we may ... | |||
wolverian | why require it to be named? | ||
Limbic_Region | but only the plusplus version is in pugs ATM | ||
wolverian - so they can come in any order | 18:13 | ||
wolverian | also, I'm now unsure what your code actually does, Limbic_Region | ||
Limbic_Region | and also so that it is easy to add options later | ||
wolverian | oh, arbitrary nested loops. | ||
right. | |||
Limbic_Region | wolverian - given a list of array refs - it will loop... yeah | ||
ok Juerd - what specifically about my @pos = (0) xx (@loop.elems - 1), -1; is bad style? | 18:14 | ||
the parens around the 0 | |||
or the ones around the substraction? | |||
Limbic_Region assumes the 0 | |||
Juerd | Limbic_Region: The 0 | 18:15 | |
Limbic_Region | done - thanks | ||
Juerd | Note that this is my opinion, not necessarily that of the perl 6 community. | ||
Limbic_Region | I agree with dropping stuff that isn't required as long as it is still readable | ||
in this case both are true | |||
wolverian | hrm. how does one write a method on an array that loops over its own elements, besides an explicit @self? | 18:16 | |
Limbic_Region | again - issue of p5 to p6 since the parens ARE needed in p5 to DWIM | ||
Corion | I saw in the backlogs that my system() test caused failures - any Win32 user can enlighten me as to what exactly was the output because it worksforme (resp. did when I commited :) ) | 18:26 | |
(maybe svn has problems with binary files?) | 18:27 | ||
(and the test still worksforme) | |||
Limbic_Region | perlmonks.org/index.pl?node_id=462987 for anyone who is interested | 18:30 | |
Limbic_Region has to wander off to a meeting now | |||
meppl | guten abend | ||
lumi | Juerd.ping | 18:33 | |
Juerd | pong | 18:37 | |
lumi | Would it be possible for me to have a feather account? | 18:38 | |
Juerd | Of course. | ||
But only when requested by email, which you did | |||
Enveigler1 | Corion: Save me searching, is there an easy way to run individual tests? | ||
Corion | Enveigler1: pugs -Iblib6\lib -w t\builtins\system\01-* | 18:40 | |
pugs -Iblib6\lib -w t\builtins\system\01-strings-with-spaces.t.disabled | 18:41 | ||
(to be exact) | |||
Limbic_Region | is the proper thing for ref to return on a code ref 'Sub' ? | ||
or rather, is 'Sub' the only thing ref will return for a code reference? | 18:42 | ||
wolverian | Code | ||
Limbic_Region | pugs -e "my $foo = sub { say 'bar'; }; say ref $foo" | 18:43 | |
?eval ref sub { say 'bar'; } | |||
evalbot6 | ::Sub | ||
Limbic_Region | ? | ||
wolverian | Sub.does(Code) | 18:44 | |
?eval Sub.does(Code) | |||
evalbot6 | bool::true | ||
wolverian | ?eval Code.does(Sub) | ||
evalbot6 | bool::false | ||
wolverian | ?eval Bare.does(Sub) | ||
evalbot6 | bool::false | ||
wolverian | ?eval Bare.does(Code) | ||
evalbot6 | bool::true | ||
wolverian | sorry for the spam. :) | ||
geoffb | That was a short meeting, Limbic_Region . . . wish all of mine were that short | 18:45 | |
Limbic_Region | well - I am trying to add in optional code ref support to the arbitrary nested loops and I am confused as to how to determine if it is the "right thing" or not | 18:46 | |
geoffb - other parties were delayed | |||
likely will start in 5-10 minutes | |||
pasteling | "Enveigler" at 81.131.127.188 pasted "Sample 01-strings-with-spaces.t output" (15 lines, 540B) at sial.org/pbot/10667 | 18:47 | |
Limbic_Region | wolverian - you did give me an idea though | ||
$code(@group) if $code.does(Code); | |||
Enveigler1 | Corion: That's from the first two tests. Lots more if you want it? | 18:48 | |
Corion | Enveigler1: Hmmm. Does t\builtins\system\t e s t\showav.exe exist ? | ||
Ow! Ow! Ow! | 18:49 | ||
I see now :( | |||
geoffb | Limbic_Region, out of curiosity, why not do your looping code recursively, since that seems to be the FP way . . . ? | ||
Corion | I forgot to add the "t e s t" directory to subversion :( | ||
Corion goes to add it | |||
Enveigler1 | Corion: I won;t past the other 321 cases then :) | 18:50 | |
Corion | Hmmmm. We-ird. "t e s t" supposedly is already under version control. | ||
(but it doesn't get checked in or out) | 18:51 | ||
Enveigler1 | Where in the tree? | ||
Corion | Maybe svn has problems with directories with spaces in their names? | ||
Enveigler1 | Could be. | ||
Corion | r4329 should work now ... | 18:53 | |
Corion crosses his fingers | |||
theorbtwo | svn up just did a bunch of As on the t e s t directory. | 18:54 | |
Of course, this is on linux, not win32, but I doubt it makes much difference. | |||
Enveigler1 | I'll update | ||
Corion: That's fixed it. | 18:56 | ||
Corion | theorbtwo: Yeah - I wiped the .svn directory in "t e s t" and then added the files again, and then it seemed to work... | ||
yay :) | |||
BTW, I really wonder - Haskells system() and quoting seems to be much better/more robust than Perl5s system(LIST) | 18:57 | ||
(on Win32) | |||
jabbot | pugs - 4327 - Tree : adding extended tests (213 of the | ||
pugs - 4328 - Added 't e s t' directory for system() t | |||
pugs - 4329 - Reenabled system() test | |||
Enveigler1 | All 323 now pass | 18:59 | |
Khisanth | Corion: as long as it doesn't require some contortions just to make it treat a single arg as a path | 19:00 | |
it would be better :) | |||
Corion | src/Pugs/Context.hs:145:0: Warning: Defined but not used: `castOk' | ||
src/Pugs/Context.hs:211:0: Warning: Defined but not used: `prettyTypes' | 19:01 | ||
(on Win32 at r4329) | |||
theorbtwo | I get those too, Corion. | ||
Corion | Ah, so these warnings are cross-platform ;) | ||
BTW, I'd like if somebody wrote the ShowArgv.hs which I punted on :) | 19:02 | ||
... and if we have Parrot, we should also test that Parrot sees the same command line (resp. parses it the same way) | 19:03 | ||
nothingmuch | anybody familiar with parsec? | 19:04 | |
wolverian | I am imploding my brain trying to grok how to use coroutines to do permutations | 19:05 | |
Corion | nothingmuch: Not really familiar but I think I understand parts of the concept | 19:08 | |
nothingmuch | Corion: i'm doing an excercise | ||
i'm forcing myself to write a forth compiler in haskell, which will eventually target parrot | |||
so that I will finally learn all three | |||
and documenting my progress in tutorial format | 19:09 | ||
and I'm having some issues writing the parser, but they were just resolved, so now i have other issues | |||
Corion | nothingmuch: I think Forth people have a special word for other people that never wrote Forth yet wrote an interpreter/compiler of it :) | 19:13 | |
nothingmuch | heh =) | ||
Limbic_Region | geoffb - I think in p5 and that's how I would have done it in p5 | ||
geoffb | Limbic_Region, nodnod. I had to do something similar in p5 some time ago (but not as a lazy generator; I just took all combos at once). Tried to do it iteratively, kept dealing with edge cases, turned it into a couple recursive lines. | 19:15 | |
That said, I'm now working on your puzzle, because its fun. :-) | |||
wolverian | what does prefix:<=> do? | 19:16 | |
Limbic_Region | geoffb - I am currently adding support for the optional parameters - should be done RSN | 19:17 | |
geoffb | cool | ||
One downside of pugs being incomplete is I can never tell if my understanding is broken or pugs doesn't support something yet | 19:18 | ||
nothingmuch | how do i match the "end" in parsec? | ||
Corion | Limbic_Region: I think "prefix:<=>" is the =$fh syntax | 19:19 | |
wolverian | Corion: is it specifically for filehandles? | ||
Limbic_Region | Corion - ok - and this means what to me? | 19:20 | |
Corion | wolverian: Judging from "&prefix:<=>", I'd say no. | ||
Limbic_Region: Dunno - depends on what context you saw it in. | |||
wolverian | Corion: without the arg list, you can't tell :) | ||
Corion: if it is a generic op, what are its semantics exactly? | |||
Limbic_Region didn't ask Corion | 19:21 | ||
wolverian | no, I did. :) | 19:22 | |
Limbic_Region has no idea what you are talking about | |||
Corion | Ah. I'm confused | ||
wolverian | I wonder if 'for' can take a coroutine as the first argument and iterate it without wrapping it in something | ||
Corion | wolverian: With the &prefix<=>, that should be it - because =$fh is $fh.readline() | ||
so `for =$fh { ... }` # should call $fh.readline() (or $fh.getline(), dunno) | 19:23 | ||
wolverian | hmm. why? | ||
as in, how does = know that? or does it ask $fh? | |||
what I really want to know is an iterator spec | 19:25 | ||
which I guess isn't written yet ) | |||
:) | |||
Corion | wolverian: I think that for() knows that, but I'm not sure. | 19:26 | |
wolverian | hmm. maybe $fh isn't an iterator nor a coroutine. then = would make sense. | 19:27 | |
but that doesn't make sense either. | |||
I'm just going to give up and wait for AES17, or whichever it was that these will be specced in :) | 19:28 | ||
geoffb | lunchtime . . . | 19:30 | |
nothingmuch | wooo! | ||
*Harrorth.Parser> parseTest forth ": FOO 2 4 BAR; GORCH : ding baz oi oi oi ;" | 19:31 | ||
[NewWord "FOO" [Push 2,Push 4,Invoke "BAR"],Invoke "GORCH",NewWord "ding" [Invoke "baz",Invoke "oi",Invoke "oi",Invoke "oi"]] | |||
Limbic_Region found a pugsbug but isn't sure it is worth pursuing | |||
next if $foo.does(Code); # works fine | |||
next if $foo.does(Code) && $foo.($bar); # bombs out | 19:32 | ||
but only if $foo is undef | |||
sri_ | is it possible to stringify rules? | ||
Corion | I guess that $rule.perl() doesn't work ;) | ||
sri_ | for reuse in eval... | 19:33 | |
Corion | sri_: Why use eval ? :) | ||
sri_ | would be a pita to write File::Find::Rule without it | ||
Corion | Without eval() ` | ||
? | 19:34 | ||
sri_ | it builds big strings for rules | ||
Corion | sri_: Then Perl6ify it | ||
... instead of doing a 1-by-1 port | |||
sri_ | suggestion? | ||
Corion | "don't build strings" | ||
sri_ | what instead? | 19:35 | |
Corion | sri_: Dunno - use subroutines | 19:37 | |
sri_ | slow *cough* | ||
Corion | (rules won't be available everywhere currently anyway) | ||
... | |||
"slow" when talking about interaction with the file system ... | 19:38 | ||
Limbic_Region | geoffb - finished | ||
I will post the two optional arguments as a reply | |||
sri_ | iterating over a stack of subs will definately slow it down | ||
Corion | I guess "slow" is better than "not working". But that's me. | 19:39 | |
sri_ | isn't there some magic new perl6 construct? :) | ||
Corion | It's called "autrijus" :) | 19:40 | |
sri_: First implement the slow version and then ask autrijus to make it faster ;) | |||
sri_ | it's currently not available | ||
Corion | re | 19:42 | |
Juerd | sri_: Rules are code, not string-like | 19:49 | |
geoffb | bak | ||
Limbic_Region, OK, I'll take a look in a bit. In the mean time, still messing with my impl. | |||
sri_ | hmm... :/ | ||
Limbic_Region | perlmonks.org/index.pl?node_id=463006 # when you get to it | 19:50 | |
sri_ | maybe i should implement a callback based File::Find for now | 19:51 | |
Khisanth | isn't File::Find alreayd callback based? | 19:53 | |
sri_ | yes, but not very nice | 19:54 | |
imo | |||
Khisanth | Limbic_Region: why not loop { }? | ||
Limbic_Region | Khisanth - while ( 1 ) you mean? | 19:55 | |
good idea | |||
Khisanth | hmm $code() is going take a bit of getting used to | 19:56 | |
Limbic_Region | you prefer the . | 19:58 | |
$code.( @foo ); # ??? | |||
Khisanth | not at all | ||
but $code->() to $code() mapping takes a bit more effort than some of the other changes | 19:59 | ||
integral is starting to get used to it | 20:01 | ||
Limbic_Region wanders off to another meeting but hopes this challenge will get more of a response then the last one | |||
integral | OTOH using -> for pointy blocks is very handy | ||
Limbic_Region | it is way cooler code IMO anyway | ||
wolverian | my &code = { }; code "bar"; | 20:03 | |
integral | that is very, very cool :-) | ||
wolverian | $code is very unperl6ish, I think. | 20:04 | |
integral | although shouldn't that give an arity mismatch error now? | ||
wolverian | integral: I forgot the ..., obviously :) | ||
integral | ah! | ||
wolverian | integral: anyway, that should put "bar" into $_ | ||
further checking is impossible in the presence of eval | |||
theorbtwo | I'd prefer to see a lazy-list based file-find. | ||
integral | I thought blocks didn't have that as a default signature now? | ||
wolverian | integral: they certainly do in pugs, and the Synopsis (still?) says so. | 20:05 | |
theorbtwo | ?eval ({}).arity | ||
evalbot6 | 1 | ||
integral | ah, ok | ||
make it hard to specify a zero-arity block though | |||
theorbtwo | (The parameter is *@_, though there is presently no way to find that out.) | ||
?eval (sub (){}).arity | |||
wolverian | ?eval (-> {}).arity | ||
evalbot6 | 1 | ||
0 | |||
wolverian | argh! | 20:06 | |
theorbtwo | ?eval (sub (){}).arity | ||
evalbot6 | 1 | ||
wolverian | I win. :) | ||
theorbtwo | Yep. | ||
integral | bug :-) | ||
theorbtwo | I agree, integral. | ||
dha throws confetti at wolverian | |||
wolverian | is that specced? | ||
wolverian eats the confetti | |||
dha | Let me know when you're all done with the esoteric stuff so I can bug you about something more mundane. :-) | 20:07 | |
wolverian | mundane is just as interesting. | ||
integral | perl6 makes the advanced mundane! | ||
wolverian | true. | ||
integral++ | |||
dha | ok, then. why has my build of Pugs (on OS X) been hanging for the past hour at "/usr/bin/perl -Iinc util/version_h.pl src/Pugs/pugs_version.h" ? | 20:08 | |
integral | that is interesting | 20:09 | |
Are you using a tarball, svn or svk? | |||
wolverian | theorbtwo: re: lazy lists. how does one generate a lazy list? | ||
dha | tarball. 6.2.6 | ||
theorbtwo | The lazy {} thingy, but that's unspecced, I think. | ||
dha | I had the same problem with 6.2.5, but didn't have a chance to bother anyone else about it. :-) | 20:10 | |
integral | did it say anything after that line? | ||
wolverian | theorbtwo: right. so I guess I'll just wait. :) | ||
theorbtwo | Blast, I thought we figured out that problem. | ||
dha | nope. that's the last line emitted | ||
For what it's worth, the cursor is on the line following. | |||
integral | do you have svk installed? | 20:11 | |
dha | yep | ||
integral | ah, it could be a subtle interaction with that I suppose | ||
if you kill it, and try a "svk info" in your pugs directory, does that hang? | |||
dha | lemme see... | 20:12 | |
mind you, if I interrupt there, it goes on. but if this follows suit from 6.2.5, it'll stall later on too | |||
svk wants me to create a repository (I haven't had a chance to actually *use* it on this machine) | 20:13 | ||
integral | ah, that'll be the problem | ||
dha | ok, svk isnt' hanging. | ||
ah. I'll try building again | |||
integral | it doesn't ask for user input? | ||
dha | uh... no | 20:14 | |
theorbtwo | Yeah. It's asking you a question where you can't see it, and waits for you to answer it. | ||
integral | ok, the quick fix is for you to do the svk depot init thing | ||
dha | svk tells me "path /Users/dha/Perl6-Pugs-6.2.6 is not a checkout path. " | ||
yes, did that. | |||
integral | ok, and does your build still hang? | ||
dha | and now the build is progressing from version.h | ||
so far, so good. hopefully, the later hang won't occur either. | 20:15 | ||
integral | ok. This is really my fault for not writing robust code for this stuff ;-) | ||
dha | thanks | ||
yes. I blame you. ;-) | |||
And, while I'm asking stupid questions, is there a way to recover your password for nick registration on freenode? I've not been here for ages, and I can't remember it to save my life | |||
integral | if you set an email just ask a staff member (hostmask: *.staff.freenode) | 20:16 | |
dha | frankly, this hasn't been my week. | ||
PerlJam | dha: so, naturally, it's a perfect time to start using pugs! ;) | ||
dha | as soon as I figure out what that means, I'll do that. thanks. :-) | 20:18 | |
pj - what, so I can feel the previous part of my week was less frustrating by comparison? :-) | 20:19 | ||
integral | well pressure does appear to encourage quick bodges that work, rather than well-designed code that doesn't after months of work ;-) | ||
dha | somehow, I'm not surprised. | 20:20 | |
theorbtwo | Can somebody who uses SVK do perl -le '{close STDIN; $x=`svk info`;}; print $x' for me? | ||
Limbic_Region is quite happy that his latest project didn't uncover any bugs (at least not ones he is sure are bugs) | |||
dha | ok. I'm going to go on to work on problems I actually understand for a change. | 20:22 | |
Thanks, integral. | |||
integral++ | |||
wolverian | theorbtwo: done. want me to nopaste it? | 20:23 | |
theorbtwo | Sure. | ||
nothingmuch tries to wake autrijus up | 20:24 | ||
wolverian | The requested URL /paste was not found on this server. | 20:25 | |
wolverian ponders | |||
integral | sial.org/pbot/perl6 | ||
Pugs 6.2.6 uploaded by cpan-upload.p6! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste at sial.org/pbot/perl6 | 20:25 | ||
nothingmuch | anybody mind going through feather:~nothingmuch/harrorth and making sure chapter 3 isn't complete utter crap? | 20:25 | |
wolverian: add a slash at the end | |||
wolverian | nothingmuch: it gave me that after I sent the paste request | 20:26 | |
pasteling | "wolverian" at 80.222.110.168 pasted "theorbtwo's svk thing" (10 lines, 304B) at sial.org/pbot/10669 | 20:27 | |
nothingmuch | wolverian: indeed. add a slash at the end of pbot/ | ||
i suspect the action is "paste" | |||
and thus it becomes "sial.org/paste" instead of "sial.or/pbot/paste" | |||
wolverian | nothingmuch: ah. right. | ||
nothingmuch | i'm only guessing though, i use pbotutil.pl ;-) | 20:28 | |
autrijus: when you wake up, AST + Parser are done | |||
Limbic_Region | nothingmuch plusplus | 20:29 | |
nothingmuch | Limbic_Region: have you dabbled in haskell yet? | ||
Limbic_Region | I was going to start this morning | 20:30 | |
got scared | |||
decided to do more p6 | |||
will play with Haskell tonight or tomorrow night | |||
depending on theorbtwo's availability to coach me | 20:31 | ||
nothingmuch | so you might be interested: | ||
i'm writing a tutorial | |||
except the catch is that I don't know it yet | |||
theorbtwo | Woo! | ||
Limbic_Region hugs nothingmuch | |||
nothingmuch | so I hope it can be more grokkable by us commoners ;-) | ||
theorbtwo | Limbic_Region: nothingmuch's haskell may well be better then mine. | ||
nothingmuch | the project backing it is compiling forth to parrot assembly with haskell | ||
so that I can learn all three =) | |||
Limbic_Region | theorbtwo - in the land of the blind, the cyclops is king | ||
iow - any sight AFAIAC is what I need right now | 20:32 | ||
nothingmuch | feather.perl6.nl/~nothingmuch/harrorth/ | ||
theorbtwo | We will likely both be up, so we can form the #teaching_limbic channel. | ||
nothingmuch | darcs get 'feather:~nothignmuch/harrorth' | ||
Limbic_Region really needs to figure out how to fix that | 20:33 | ||
nothingmuch | fix what? | ||
geoffb | The fact that CGI:IRC keeps logging in and out? | 20:34 | |
Limbic_Region | I had to reinstall FF today to fix some weird bug and now the open link in new tab and this tab are next to one another | ||
geoffb - that's me clicking on the wrong thingy | |||
nothingmuch | Limbic_Region: did you get the link? | ||
geoffb | bad thingy! | ||
Limbic_Region | I am looking in the IRC log now | ||
theorbtwo | Don't you have a middle button? | ||
Limbic_Region | got it | ||
theorbtwo yes | 20:35 | ||
geoffb | OK, coroutines aren't terribly difficult as a general concept, but DAMN they're hard to use correctly. | ||
SamB | yes, I agree. | ||
I can't even *think about them* correctly really at all. | 20:36 | ||
theorbtwo | I just got into the habit of middle-clicking. | ||
SamB | they are probably not quite as confusing as multi-shot continuations in an imperative language. | ||
Limbic_Region thinks he will too | |||
nothingmuch - do I have to read it in kwid or is there a kwid2X thingy? | 20:37 | ||
nothingmuch | Limbic_Region: i have no idea if there's a kwid2x or whatever, but i find it to be pretty readable | ||
Limbic_Region | ok - will look at it tonight | 20:38 | |
oh shit | |||
nothingmuch | it's just your plain old wiki text, really | ||
Limbic_Region notes the time and heads home | |||
nothingmuch | KWID: www.wougnet.org/Profiles/kwid.html | 20:40 | |
stevan | nothingmuch: your kwid docs seem to make sense | 20:45 | |
someone should port Parsec to perl 6 ;) | |||
nothingmuch | indeed =) | ||
stevan | it seems to just be a stack of subroutines which eat tokens | 20:46 | |
or am I simplifying it | |||
s/simplifying/over-simplifying/ | 20:47 | ||
theorbtwo | You are oversimplifying it, but you've got the basic idea, I think. | ||
The problem is intelegant and elegant handling of failure. | 20:48 | ||
nothingmuch | that's where monads finally start making sense =) | ||
and purity, too | |||
stevan | theorbtwo: elaborate please :) | ||
purity++ | |||
theorbtwo | If you do 'ac' =~ /a(b|c)/, you need to have the b fail, and try c. | 20:49 | |
stevan | so the subs should eat tokens, but also be able to throw them back up if something is wrong :) | 20:50 | |
theorbtwo | Something like that, yeah. | 20:51 | |
stevan | hmmm | ||
nothingmuch | stevan: the try thing is how it's done | ||
see parsec docs | |||
stevan | nothingmuch: reading them right now | ||
geoffb | How do you get a coroutine to stop? In other words, how do you get it from running through all its yields and just starting over again? | 21:02 | |
s/get it from/keep it from/ | |||
integral | one approach is to recreate it: sub make_coro { coro { ... } }; my $coro = make_coro; ...run_it...; $coro = make_coro; | 21:03 | |
nothingmuch | geoffb: from without the coro? | ||
integral | err, I probably mean: my &coro := make_coro; | ||
geoffb | Hmmm . . . | 21:04 | |
Going for a bit of concreteness here: | |||
nothingmuch | integral++ | ||
geoffb | Let's say I have sub foo(@list) { coro { @list.map:{yield $^item} } } | 21:05 | |
integral | wouldn't ???/take be the better option? | ||
geoffb | I want to run through all the items in the list, then stop giving back anything. | 21:06 | |
integral, hmmm | |||
theorbtwo | G'night, all. | ||
Limbic: I'll probably be back. | |||
integral | coro { ...; yield undef while 1 } | ||
nothingmuch | theorbtwo: he left a while ago | ||
theorbtwo | I know, but he'll see the log. | ||
nothingmuch | ah | 21:07 | |
geoffb | integral, yeah, I figured I was going to have to do that . . . | ||
integral | you almost want: swap &?CURRENT_SUB, sub { return undef }; | 21:08 | |
geoffb | integral, Actually, got an idea . . . if I combine your previous idea with always doing 'yield $^item but true' then a caller can know when to stop asking | 21:09 | |
integral, now that would be a nice toy . . . . | |||
integral | hmm, doesn't this fit an array/iterator pattern better? | ||
ugh, I can't remember the think that goes with take | 21:10 | ||
geoffb | Trying to learn coroutines . . . | ||
gather? | |||
integral | yep that's it | ||
I think I don't like about: return $foo but true, is that you can't get back what truth $foo had before the trueness was forced on it | |||
geoffb | I'm doing the Limbic_Region method: do it the hard way to force yourself to learn something | ||
integral, true enough. :-/ | 21:11 | ||
integral | hmm, I should post to p6l more =) | ||
Actually what I really should be using is something like haskell's Maybe, where you add another box | |||
and in haskell maybe is a monad so it can quite invisible | 21:12 | ||
sri_ | oh, -l is not yet implemented, that makes File::Find quite dangerous... | 21:18 | |
stevan | sri_: file tests are pretty easy to do in the Haskell | ||
assuming the Haskell System.IO library implements the function | 21:19 | ||
sri_ | then go implement :) | ||
i'm very bad at haskell | |||
stevan | sri_: outta tuits for the day, but you are free to do it :)( | ||
I bet I suck at haskell more ;) | |||
sri_ | no way! :) | ||
stevan | what does it do anyway? | 21:20 | |
sri_ | symlinks can result in infinite loops | ||
very easy | |||
-l just tests for symlink | 21:21 | ||
stevan | hmm | ||
lemme look at the haskell docs | |||
no promises, but I will give it a try | |||
sri_ | :) | ||
stevan | sri_: I found the Haskell function, but it is in the Posix library an so it is non-portable | 21:31 | |
which means its it over my head :) | |||
sri_ | mkay...thx for trying ;) | ||
stevan | although wait a second,.. I just found something | ||
sri_: what OS are you on? | 21:32 | ||
sri_ | osx | ||
stevan | src/Pugs/Compat.hs has some Posix stuff in it, ... hmm this is Corion's territory really | 21:33 | |
sri_ | parent directory is on every os ..? | ||
theorbtwo | sri_: No -- it's not on VMS, or on MacOS <= 9. | 21:35 | |
stevan | theorbtwo: any thoughts on this? | ||
theorbtwo | Donno what this is yet. | ||
Aankhen`` | G'night. | ||
stevan | adding -l support | ||
there is a System.POSIX.Files.isSymbolicLink | 21:36 | ||
isSymbolicLink :: FileStatus -> Bool | |||
I am thinking that adding isSymbolicLink to the Pugs.Compat export(?) list will do the trick | 21:37 | ||
(and of course add a failing version for Win32) | |||
theorbtwo | So do it in terms of that in the POSIX case, and make it return false always in the non-posix case? | ||
stevan | return false, or warn/fail,.. it seems the convention in Compat | 21:38 | |
once it is in there, it should be fairly simple to add it to Pugs.Prim.FileTest and Pugs.Prim | 21:39 | ||
but as I said before | |||
my haskell sucks :) | |||
theorbtwo | stevan: The only way for it to start sucking less is for you to use it more. | 21:40 | |
stevan | theorbtwo: agreed, but its a matter of tuits | ||
I have been reading algorithms though, so I can read it now | |||
just not write yet | |||
stevan is very much looking forward to the hackathon (aka - no $work for a week) | 21:41 | ||
theorbtwo | I'm very worried about the hackathon. | 21:42 | |
...but largely just because I'm like that. | |||
Welcome back, Limbic! | 21:46 | ||
Limbic_Region | thanks | 21:47 | |
I see you are back too | |||
Limbic_Region is reading what nothingmuch has produced so far ATM | |||
21:50
mrborisguy is now known as mrborisguy_
21:51
mrborisguy_ is now known as mrborisguy
|
|||
geoffb | Limbic_Region, have first coroutine version of looper function . . . just signing up for a PM account so as to reply to your node. | 21:52 | |
theorbtwo | Welcome to the monestary, geoffb. | ||
Limbic_Region | geoffb - you can post anonymously | 21:53 | |
but we do encourage you to sign up | |||
btw - does it run in pugs? | |||
geoffb | Limbic_Region, my AC days are over, now that I'm published. Got tired of full on paranoia 24x7 | 21:54 | |
And yes, it runs under pugs | |||
:-) | |||
Limbic_Region | cool | ||
I have no idea why I didn't think of this solution before | |||
it is quite simple and I know I thought about it a bunch of times (though never invested serious effort) | 21:55 | ||
Limbic_Region is going to beat nothingmuch senseless if he ends up learning YAL by reading his tutorial on Haskell | 21:56 | ||
theorbtwo grins. | 21:57 | ||
jabbot | pugs - 4330 - Hopefully, solve the problems with the v | ||
geoffb | LOL | 21:58 | |
OK, Guess I'm off to the Writeup Formatting Tips node . . . | |||
Ah, now THAT'S a little less borken | 21:59 | ||
perlmonks.org/index.pl?node_id=463036 | 22:00 | ||
That's just the raw iterator. | |||
I'll work on the other params next | |||
wolverian | geoffb: now make it use 'for' syntax instead of 'while'. :) | 22:01 | |
Limbic_Region | geoffb++ | ||
will play with it after I am finished reading nothingmuch's tutorial and building pugs | 22:02 | ||
wolverian | (that wasn't criticism - I'm just overeager to know how to do that generally) | ||
(lazily.) | |||
Limbic_Region | lazy {} is still unspecced though right? | 22:03 | |
geoffb | wolverian, I'll get there . . . hell, I just got pugs running yesterday. :-) | 22:04 | |
wolverian | geoffb: nice. :) | ||
Limbic_Region: yes, there is no official spec how to make lazy lists. | |||
(or whatever other interface 'for' and iterators might use) | |||
Limbic_Region | I would have liked to have included some of the p6 iterators I have built recently in the iterators tutorial I wrote | 22:05 | |
perhaps I will make a part 2 | 22:06 | ||
theorbtwo - still about? | |||
actually - coroutines are still unspecced too AFAIK | 22:07 | ||
AES17 hasn't been written yet | |||
theorbtwo | I am. | ||
Limbic_Region | ok - mind if I /msg you | 22:08 | |
I didn't get very far with nothingmuch's tutorial | |||
other than to learn that parsec looks like Parse::RecDescent at a superficial level | |||
theorbtwo | Not at all, though talking in the chan might be a better idea. | ||
Limbic_Region | you know how verbose I can be - didn't want to monopolize the main channel | 22:09 | |
theorbtwo | Create a new chan, then? | ||
geoffb | Yes, but it's interesting stuff | ||
theorbtwo | I don't want you to miss out on tutoring from people who know more then me. | ||
geoffb | Appropriate to the channel | ||
Especially since the IRC logs are so handy | 22:10 | ||
theorbtwo | And I don't want to miss out on more audiance. | ||
geoffb | theorbtwo: ham | ||
:-) | |||
theorbtwo | Lazy, Hubirific. | ||
Lazyness is not wanting to give the same speech more then once. | |||
Hubrific is thinking that I have something to teach. | 22:11 | ||
Obviously, I'm not very good at the second. | |||
theorbtwo wonders how to work in Impatience. | |||
geoffb | Having to spend time saying something more than once? | 22:12 | |
theorbtwo | I already called that Lazyness, though. | ||
Limbic_Region | geoffb - I just replied to your node to point out that coroutines aren't specced yet for the benefit of others | ||
geoffb | good point | 22:13 | |
(er, that was for theorbtwo ) | |||
Limbic_Region | theorbtwo - let's start then with what I want to get working | ||
geoffb | Limbic_Region, thanks | ||
theorbtwo | Whenever you're ready. | ||
Limbic_Region | svn.openfoundry.org/pugs/examples/c...scoring.p6 | ||
there are 4 things (in comments) that need to be done before that code will work | 22:14 | ||
so what I would like to do is pick 1 (that you think you know how to do) and have you walk me through fixing it | |||
hopefully learning how to fish in the process | |||
theorbtwo | mikfire09: Not sure how approprate this is really going to be -- but pick up a copy of ghc (at least 6.4), and a svn checkout of pugs, while I figure out which of Limbic's four bugs to tackle. | 22:16 | |
mikfire09 | It will take me a while -- my laptop is not connected at the second. | 22:17 | |
theorbtwo | Oh. | ||
Limbic_Region | theorbtwo - only 2 are bugs | 22:18 | |
the other 2 are unimplemented features | |||
theorbtwo | As far as I'm concerned, unimplemented features are bugs. | 22:20 | |
Limbic_Region | heh | ||
well, if I had my choice of the 4 | |||
I would pick hyperdereferncing | |||
theorbtwo | Good; I think that may be the most reasonable of them -- mostly because I overheard autrijus give a plan for it. | 22:21 | |
Of course, I don't remember what it was. | |||
Limbic_Region | right - I asked about it earlier this morning | ||
it is in the IRC logs | |||
colabti.de/irclogger/irclogger_log/...-06-02,Thu | 22:22 | ||
search for "autrijus - of the 4 things that need to be done to get" | |||
that's the start of the conversation | |||
theorbtwo | autrijushyper deref will make you learn about parser :) | ||
which is considerably easier than the rest of source code | |||
so maybe that first 14:02 | |||
Limbic_Region guesses he will wait for a rainy day 14:02 | |||
autrijusLimbic_Region: basically we already have &infix:<.{}> | |||
so hyper deref is just adding the >>.{} form to parser, that's all 14:03 | |||
theorbtwo.{} is infix? Shouldn't it be postcircumfix? 14:03 | |||
autrijusgood catch. | |||
feel free to fix the Prim entry 14:04 | |||
We're going to do that, since autrijus suggested doing it first. | 22:23 | ||
Limbic_Region | ;-) | ||
ok | |||
I assume Prim.hs | |||
theorbtwo | Also, I don't know much about the parser, and this is a good excuse to learn. | ||
mikfire09 | orb -- I will be back in a bit. I need to find food & beer | 22:25 | |
jabbot | pugs - 4331 - Ported File::Find, first try for a new a | 22:27 | |
Limbic_Region | geoffb - you got another useful reply | 22:29 | |
geoffb | thx | ||
Limbic_Region | not sure if you have your settings set up to automatically /msg you when you get a reply | ||
if you don't you should | |||
it is helpful | |||
revdiablo | dang, this code geoffb posted doesn't work -- I guess my week-old pugs is out of date | ||
:) | |||
Limbic_Region | that was like 3 releases ago revdiablo | 22:30 | |
:P | |||
revdiablo | :) | ||
22:31
kelan_ is now known as kelan
|
|||
revdiablo | this build I have is about a day after 6.2.5 | 22:31 | |
building the HEAD now... | |||
theorbtwo | Uff... this stuff is harder then I thought. | ||
Khisanth | theorbtwo: autrijus makes it look so easy eh? | 22:32 | |
geoffb | Limbic_Region, OK, I'll go take a look at my settings. | 22:34 | |
theorbtwo | Exactly, Khisanth. | ||
revdiablo | Limbic_Region: hmm, that's not a default setting? | ||
theorbtwo | Really, I've not strayed that far out of the stuff I know how to do. | ||
Somewhat sadly, no, it's not the default. | |||
Perhaps I should fix that at some point. | |||
Limbic_Region | dunno revdiablo | 22:35 | |
which is why I said - if its not go set it | |||
Limbic_Region is playing with geoffb's example now | |||
geoffb | Limbic_Region, I take it the /msg functionality assumes (as luckily is the case) that your PM name matches your freenode nick? | 22:36 | |
mugwump | damn, my PM name is too long.. | ||
Limbic_Region | nope | ||
revdiablo | geoffb: it sends you a PM /msg | ||
Limbic_Region | Limbic~Region at the Monastery | ||
mugwump | (for IRC) | 22:37 | |
revdiablo | geoffb: at perlmonks, above the chatterbox nodelet, you will see any msgs you have received | ||
Limbic_Region | and it goes to the Monastery (which has its own messaging system) | ||
mugwump | oh, maybe it isn't. I'm sure I'm had it truncated to "mugwumpjis" before | ||
mugwump shrugs | |||
geoffb | revdiablo, Ah, so should refresh the page often, I guess | ||
theorbtwo | Ah, so you /are/ that mugwump. | ||
I was unsure. | |||
revdiablo | geoffb: well, I usually notice it after I have clicked on another link | ||
mugwump | :) | ||
revdiablo | geoffb: but if you want to refresh often, be my guest :) | 22:38 | |
Limbic_Region | geoffb - I tend to not use "refresh" | 22:39 | |
I tend to click on the link for Other Users | |||
that takes you to their homenode - so you can learn a bit about your fellow monks | |||
they often have good links for you to follow | |||
when that fails to keep my interest, I check out Newest Nodes | |||
geoffb | Ah. | 22:40 | |
And you manage to get coding done also? ;-) | |||
Limbic_Region | when I have tabbed browsing - sure | ||
ok - so in your example you are optimizing for specific cases | 22:41 | ||
I got that much no problem | |||
theorbtwo | I think I'm beginning to figure this out. | ||
Limbic_Region | my &rest = NL2(loop => @loop[1..Inf]); # is giving me some problems though | 22:42 | |
mind explaining? | |||
oh wait | |||
geoffb was about to explain, then saw light over Limbic_Region's head | |||
Limbic_Region | is the Inf a slick way of not having to figure stuff out? | 22:43 | |
revdiablo | aw, the debian version number was out of date -- gotta build it again | ||
mugwump | geoffb: is that coro on PM in pugs examples anywhere? | ||
Limbic_Region | mugwump - nope | ||
I just came up with the challenge | |||
geoffb | yeah, don't have to figure out how big @loop is | ||
Limbic_Region | and geoffb just came up with the contribution | ||
geoffb | Just basically "give me every element, starting at 1" | ||
Limbic_Region | ok - not sure that's how I would have cheated | ||
geoffb | Hey now, no cheating here. :-) | 22:44 | |
Limbic_Region | as in it isn't clear from first glance | ||
mugwump - I do intend to check in 1 or more examples after more people have had a chance to reply | |||
for instance - revdiablo's sagely advice of turning the map into a for | |||
geoffb | Limbic_Region, as noted in my reply -- my current version has that. | 22:45 | |
Limbic_Region | right | ||
geoffb | Hmmm, not used to thinking PM way -- probably should go back and edit it. | ||
Or not, better to spend time getting full version done | |||
Limbic_Region | geoffb - typically you only do 1 or the other | ||
update the node saying "updated thanks to revdiablo" | 22:46 | ||
or post a comment agreeing/disagreeing leaving the original in tact | |||
mugwump | Limbic_Region: personally I don't buy that :). Maybe there needs to be Array.loop in S29 | ||
geoffb | Limbic_Region, makes sense | ||
Limbic_Region | don't buy what mugwump? | ||
mugwump | changing map to for | ||
Limbic_Region | ok | ||
well I was going to suggest changing Inf to @loop.end | 22:47 | ||
jabbot | pugs - 4332 - change version number | ||
Limbic_Region | geoffb - I updated my reply to you accordingly - feel free to ignore the suggestion though | 22:48 | |
geoffb | Limbic_Region, fair enough -- though isn't my method described in one of the SAE? | 22:50 | |
Limbic_Region | I know blokhead is working on a solution to but he ran into unimplemented pugs features | ||
that's my point about p6 DWYM but that it isn't as clear (IMO) as an explicit @foo.end | |||
geoffb | ah, gotcha. | 22:51 | |
Limbic_Region | should also be able to do it several other ways | ||
I am about to play with them now | |||
geoffb | heh | ||
Limbic_Region | actually - they are more obfuish | 22:52 | |
geoffb - did you see the original p6 challenge I posted? | 22:54 | ||
geoffb | Erm, don't think so. | ||
Limbic_Region | I would love to see what you could do with that | ||
perlmonks.org/?node_id=458728 | |||
that one is already checked in as an example | 22:55 | ||
geoffb | @geoffb_stack.push($url) | ||
Limbic_Region | svn.openfoundry.org/pugs/examples/c...scoring.p6 | ||
geoffb | nod | ||
revdiablo | mugwump: you don't think that map should be changed to for? | 22:56 | |
theorbtwo | I think I got it. | ||
So, we're trying to fix return. Start by searching for "return" in src/Pugs/Prim.hs | 22:57 | ||
mugwump | revdiablo: sure. that return list isn't built and discarded like in perl5. | ||
Limbic_Region | which 1 are you addressing theorbtwo? | ||
mugwump | so, it's a matter of style | ||
Limbic_Region | hyperderefing | ||
or the step that autrijus said to do first? | |||
revdiablo | mugwump: it's not built and discarded in perl5 anymore either | 22:58 | |
mugwump: my suggestion was one about style, not efficiency :) | |||
Limbic_Region | I'm there theorbtwo | ||
mugwump | well, I don't think it's bad style, but obviously some do | ||
theorbtwo | The first one is the case where return is called with no arguments. Skip that one, go on to the op1 case. | ||
revdiablo | mugwump: to me, it just adds some extra syntax for no benefit | 22:59 | |
mugwump | it's the benefit of not having to restructure the statement to put the for at the front | ||
Limbic_Region | k - I am in the op1 section theorbtwo | ||
mugwump | Maybe a .loop:{ ... } would be nicer for that | ||
to make it clearer | |||
theorbtwo | OK -- that just calls out to op1Return, so search for that. | 23:00 | |
revdiablo | mugwump: it didn't need any restructuring. don't get me wrong, when map makes sense, I'll use it. I just don't think it makes sense here. *shrug* | ||
Limbic_Region | I'm there | ||
theorbtwo | That finds the depth, checks if it's 0, and dies if it is. | ||
Limbic_Region | right | ||
mugwump | you changed; @loop[0].map:{ yield [$^first] }; to: for @loop[0] { yield [$^first] } | 23:01 | |
Limbic_Region | I can even read that ;-) | ||
mugwump | this is swapping the order of the array and the loop directive | ||
theorbtwo | Then it gets &?SUB, the perl value representing the current sub, and unwraps it. | ||
Limbic_Region | ok - I don't understand all of that - but I get the general idea | 23:02 | |
theorbtwo | fromVal unwraps a perl-level thing into a haskell-level thing. | ||
All perl-level values are repesented by Val. fromVal takes the Val, and converts it into the approprate type of haskell variable. | |||
Limbic_Region | and sticks it in something called sub | ||
revdiablo | mugwump: I guess we will just disagree here :) | ||
Limbic_Region | I got that | 23:03 | |
theorbtwo | (Without, in general, you having to tell it what is approprate, even though haskell is statically typed, though the magic of type inference.) | ||
Anyway, then it calls subCont on it, to get it's continuation. | |||
If it doesn't have one, then it's a normal sub; if it does then it's a continuation. | 23:04 | ||
Perl rules say that trying to return from a continuation is a failure, so it fails. | |||
If not, it is action. | |||
Limbic_Region | ok | ||
theorbtwo | ...so return ($foo) is just a fancy way of checking if we return, and making the value of the statement $foo if we can. | ||
Limbic_Region | while I understand that - I couldn't have written it | ||
theorbtwo | It doesn't actually end execution of the current sub. | 23:05 | |
Limbic_Region | and that's the problem? | ||
geoffb | mugwump, revdiablo: sorry, had to take a call -- from the backscroll it sounds like @loop[0].loop:{...} would be best all around, except it doesn't work in pugs yet? | ||
theorbtwo | That's the problem. | ||
I couldn't have written that either, BTW. | |||
revdiablo | geoffb: no, I still like the for loop better, using my "less syntax" rule of thumb | 23:06 | |
Limbic_Region | well - I am just glad that I recognized the problem before you said "the problem is..." | ||
mugwump | geoffb: doesn't work in pugs yet? Of course not, I just made it up ;) | ||
Limbic_Region | so do you know how you would go about fixing it | ||
theorbtwo | So, here's the question: What does exhibit the behavior we want? | ||
revdiablo | geoffb: but mugwump disagrees. so you can decide whichever way you like | ||
geoffb | mugwump, ah, gotcha | ||
Limbic_Region | theorbtwo - I am not sure I am following | ||
you want an example of something that works correctly and something that breaks? | |||
theorbtwo | Somewhere else in the pugs code base, there's a primitive that does correctly end execution of the current sub. | 23:07 | |
geoffb | revdiablo, for now I have the 'for' version, but I would probably like .loop:{}, as it would Do What It Says | ||
theorbtwo | That thing is die. | ||
Limbic_Region | oh - I see - copy/paste | ||
theorbtwo | Well, I think we can do a bit better then cut and paste... but only a little bit. | ||
Limbic_Region | let me see if I can find it and see if I can figure out the proper thing to copy | ||
revdiablo | geoffb: how does a for loop not do what it says? unless there is some extra semantic meaning you're attaching to for that I don't see | 23:08 | |
geoffb | No, I meant as opposed to .map:{} | ||
Limbic_Region | no luck theorbtwo | 23:09 | |
my best bet would be fail | |||
s/bet/guess/ | |||
revdiablo | geoffb: ah, ok, I can agree with that :) | ||
revdiablo is not trying to disagree just for disagreement's sake, honest! | |||
geoffb | heh | 23:10 | |
geoffb valiantly trying to figure out whether his code is buggy, or pugs is | |||
Limbic_Region | geoffb - still working on the optional support - or the other challenge? | ||
geoffb | optional support. | ||
For some reason, the path I have chosen is throwing errors from pugs. | 23:11 | ||
And now I'm invested in figuring out WHY | |||
revdiablo | geoffb: when you do, if you find a bug, make sure to create a test case for it. :) | 23:12 | |
geoffb | :-) | ||
theorbtwo | op1 "die" calls fail, which does the hard part of failure. | 23:13 | |
Sadly, "fail" is not listed directly in the index. | 23:14 | ||
You have to do your own sniffing about to find it. | |||
Limbic_Region | well - that's why I said it was my best guess | ||
ok - will find . -type f -exec grep -l fail {} \; | |||
there is a fail_ btw | |||
revdiablo | golf! grep -rl fail . | 23:15 | |
:) | |||
theorbtwo | fail_ is on the perl6 layer, though. | ||
revdiablo: Assumes a GNU grep. | |||
OTOH, find -exec assumes a GNU find. | |||
revdiablo | self refutation++ | 23:16 | |
theorbtwo | The one you want is on line 1092 of src/Pugs/AST/Internals.hs | ||
Thanks, rev. | |||
Limbic_Region | theorbtwo - no it doesn't | ||
ref -exec assuming GNU find | |||
theorbtwo | Oh. | 23:19 | |
OK. | |||
Anyway, you see the defintion of fail? | |||
Limbic_Region | fail str = do | ||
that line? | |||
geoffb | OK, here's one of the problems: 'do_something() if $code_ref and $code_ref()' doesn't safely shortcircuit; pugs dies with a casting error if $code_ref is undef. | ||
Limbic_Region | yeah | ||
theorbtwo | Yep. | ||
Limbic_Region | I found that earlier geoffb | ||
geoffb | But it works just fine if you say ' if $code_ref {do_something if $code_ref()} | ||
Limbic_Region | I didn't pugsbug it but I should have | ||
geoffb | cool, I'm not insane | ||
Limbic_Region | I think it is how the parser works | ||
theorbtwo | Anyway, the meaty line is shiftT . const . return $ VError str [pos] | ||
Limbic_Region | in any case geoffb | ||
make a simple test case | |||
right - theorbtwo | |||
only we aren't interested in an error | |||
are we? | 23:20 | ||
theorbtwo | Right. | ||
But we are intersted in screwing with the evaluation, which is I think what shiftT does. | |||
Limbic_Region | ok - we are once again way over my head | ||
theorbtwo | So now we need to figure out how to use shiftT. Looking it up in the index of pugscode.org/haddock/ gives two of them. | 23:21 | |
We want the one in Pugs.AST.Internals. | |||
(That's from a guess, just because I've never heard of Pugs.Cont before.) | |||
Yeah, we're in a bit over my head too. | |||
Limbic_Region | ok | 23:22 | |
geoffb - Limbic_Region found a pugsbug but isn't sure it is worth pursuing | |||
next if $foo.does(Code); # works fine | |||
next if $foo.does(Code) && $foo.($bar); # bombs out | 23:23 | ||
but only if $foo is undef | |||
theorbtwo | If you look in Pugs.AST.Internals, you can find the defintion of shiftT, of which I understand the about a word. | ||
geoffb | got it | ||
Limbic_Region | I found the same bug earlier today | ||
geoffb | Great minds clearly think alike. | ||
Limbic_Region | theorbtwo - but what exactly are we wanting to do with it | ||
theorbtwo | ?eval say 'HI' if 0 and die('horribly') | 23:24 | |
evalbot6 | undef | ||
theorbtwo | (Why didn't that die?) | ||
We want to call it, but first we have to figure out how. | |||
Limbic_Region | oh... | 23:25 | |
I was thinking you wanted to manipulate it | |||
wolverian | theorbtwo: 0 and ... shortcuts | ||
if that's what you asked. (upon rereading backlog) | 23:26 | ||
theorbtwo | wolverian: It should, but isn't that the same as the code that Limbic_Region had bomb? | ||
Anyway, I'm getting side-tracked. | |||
Limbic_Region | theorbtwo - no - you misread | 23:27 | |
it bombs out with an undef error | |||
it should have never gotten to the undef part | |||
because it SHOULD have short circuited | |||
but didn't | |||
theorbtwo | shiftT takes a argument that's a function... so we need some function to pass it. | 23:28 | |
So we pass it (\_ -> action). | |||
wolverian | hmm. | ||
say "hi" if undef.does(Code); # Can't modify constant item: VBool False | |||
Limbic_Region | back to the other bug for a second | ||
if $OnlyWhen.does(Code) { $OnlyWhen(@group) or next } | |||
that line is written that way because it won't work as | |||
theorbtwo | That is, an anonymous function that takes a single parameter, and then calls action. | 23:29 | |
Limbic_Region | next if $OnlyWhen.does(Code) && ! $OnlyWhen(@group; | ||
theorbtwo - I am understanding what you are saying but I haven't assimilated it | |||
I think I need to start more basic | 23:30 | ||
and by "won't work" - I mean it is a parse error saying it isn't defined even though it shouldn't have gotten called in the first place | |||
theorbtwo | Oh. | ||
Well, with my modification, it still doesn't pass the test. | 23:31 | ||
wolverian | Limbic_Region: $foo.?meth; # call .meth if it exists; I assume $OnlyWhen.?(@group); would work | ||
although that might be too ugly to live. :) | |||
(unless () isn't a method, of course.) | 23:32 | ||
Limbic_Region | wolverian - that's getting around the bug | ||
that isn't fixing the bug | |||
theorbtwo | I'm going to revert out my modification, and wait until I know WTF shiftT does. | ||
geoffb | OK, 'No compatible subroutine found' is rapidly becoming my nemesis | ||
Limbic_Region | I got around the bug in a completely different way | ||
wolverian | Limbic_Region: I'm just thinking about more perl6ish ways to do this. | ||
Limbic_Region | geoffb - you know why right? | ||
wolverian | Limbic_Region: sorry. | ||
Limbic_Region | wolverian - no need to apologize | ||
geoffb | Limbic_Region, ? | ||
Limbic_Region | geoffb - signatures | ||
geoffb | Oh, yeah, that I knew. | 23:33 | |
wolverian | try { $foo() } err next; | ||
geoffb | Why exactly the sigs are incompatible is what's got me confuzzled | ||
wolverian | hmm that didn't quite do the same thing as your code. :) | ||
Limbic_Region | nopaste it geoffb | ||
geoffb | Going to try fiddling for a couple minutes more, then will do. | ||
Limbic_Region | theorbtwo - sounds good to me | ||
geoffb - you are going to pugsbug the problem though right? | 23:38 | ||
geoffb | hold on -- daughter wants some attention atm | ||
Limbic_Region | give her all your attention then | ||
she deserves it | |||
Limbic_Region notes the time and calls it a night | 23:53 | ||
but hopes that geoffb will submit a test exhibiting the bug |