6.2.7 released! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | Chip needs help!!! www.geeksunite.net Set by kungfuftr on 30 June 2005. |
|||
Khisanth grabs an aluminum bat and heads for autrijus' current location | 00:04 | ||
Limbic_Region | autrijus - I taught myself how to turn off my internal dialog. It doesn't always work because as soon as you start to relax into sleep it jumps right back in. Usually need a combination of turning off the dialog along with no mental activity 2 hours prior to sleep | 00:13 | |
meppl | why is in the examples no ~~ m/bla/ ? | 00:14 | |
only m:perl5/.../ | |||
autrijus | meppl: the rules support depends on (currently) trunk parrot (which will become 0.2.2 soon) | 00:15 | |
meppl | oh, okay | ||
autrijus | but you are entirely free to commit examples/rules/ | ||
that'd be helpful | |||
Limbic_Region | speaking of which - I assume you aren't planning another release until you are back to being on the other side of the world? | 00:16 | |
autrijus | I was initially planning another release, but my brain state doesn't seem to allow for it | ||
meppl | okee | 00:17 | |
clkao | the perl5 stuff seems to be broken badly | 00:22 | |
segfault on array.t | |||
but startup seems to be faster.. preludeis compiled now? | |||
stevan | pdcawley: the metamodel you refactored seems to be an older version | 00:40 | |
the newest version was checked in last night (which is probably your early yesterday morning maybe) | 00:41 | ||
pdcawley: however, i will review the refactoring you did, and try to incorporate it | 00:42 | ||
pdcawley: as for "how much can I refactor", my usual answer is "as much as you like, as long as all the tests still pass" :) | |||
autrijus | nothingm1ch: back from the walk? | 00:58 | |
nothingm1ch is really impossible. :) | 01:21 | ||
he misremembered his flight date -- it is actually taking off in less than 2 hours, instead of tomorrow this time | 01:22 | ||
so he's now scrambling to pack and chase the plane. | |||
autrijus wonders if the plane will wait for him | |||
obra | oh shit. | ||
autrijus | indeed | ||
obra | what's the flight #? | 01:23 | |
autrijus | no idea... I don't think he's in the mood of answering that | ||
I'm glad I was double-checking my plane ticket, which seemed to prompt him doing the same | |||
obra | *nod* | ||
autrijus | (my flight, on the other hand, takes off in 11 hours) | ||
obra | (Was thinking it might make sense to see if the flight is delayed) | ||
autrijus | Malev 97 | 01:24 | |
(flight number) | |||
obra | *nod* | ||
spinclad | bonne chance et bon voyage -- i hope he's safely out the door. customs to go through? | 01:54 | |
autrijus | I think he'll do fine | 02:00 | |
he said he'll ping back at #perl6 in Budapest airport | |||
(and commit in new html matrix code that lets us do revision diffs) | 02:01 | ||
(and platforms diffs) | |||
spinclad *whews* | |||
(and other higher-dimensional functors on the code) | 02:03 | ||
nothingmuch | bah | 04:07 | |
sili_ | bah bah black sheep have you got any wool | 04:08 | |
nothingmuch | my flight was overbooked | ||
the moral of the story is: airlines will do anything to make you happy | |||
instead of a connection through budapest i have a direct flight tomorrow | |||
first classx | |||
and i got $665 cds | 04:09 | ||
cdn | |||
just for 'agreeing' to stay | |||
i get to israel in normal people time | |||
and the flight is more convenient | |||
autrijus | ...and he also got to wake me up from sleep and force me to sign his openpgp key | ||
nothingmuch | and i'm getting paid back almost the full price of the flight | ||
yeah, i remembered I needed to do that | |||
autrijus | and then promptly dumped me back to sleep while he get to show off in #perl6 | ||
nothingmuch | autrijus said "i can just find the fingerprint on the wiki" | 04:10 | |
so much for security, eh? | |||
autrijus mumbles something about karma and fate etc and went back to sleep | |||
nothingmuch | grr | ||
now my plane will crash because of autrijus | |||
QtPlatypus | Has someone written out the grammer for Perl6 in the form of Perl6 rules? | 04:18 | |
nothingmuch | seen chip | 04:36 | |
jabbot | nothingmuch: chip was seen 4 days 12 hours 36 minutes 50 seconds ago | ||
obra | nothingmuch++ # social engineering | 04:52 | |
nothingmuch | obra: thanks =) | 04:59 | |
QtPlatypus is attempting to write some of pugs/examples/cookbook "I'm trying to follow the 'Perl Cookbook' but some of it doesn't make sence in Perl6, should I rephrase the requirement in the way that makes sense in perl6? | |||
nothingmuch | not that I did anything.. | ||
= | |||
) | |||
i just seemed a bit worried, so they were extra persuasive | |||
and then I made sure I had a direct flight, and not the same connection | |||
cwest | So I need to know. What is the status of Perl 6 rules via pugs? | 05:28 | |
QtPlatypus | cwest: In what sence? | 05:31 | |
Khisanth | cwest: I think you want #parrot on perl.org :) | ||
cwest | do I? | 05:32 | |
I want to know if I can write Pelr 6 rules using pugs so I can build a parser that targets parrot via perl 6. | |||
or can I throw grammars right at parrot? | |||
Khisanth | well I don't think you will be able to use anything not yet implemented in PGE :) | 05:33 | |
cwest | I was hoping for an easy answer. It sounds like you're trying to say that pugs has not implemented that. | 05:34 | |
Which is cool. | 05:35 | ||
My javascript parser will just target perl 5 for today. | |||
Khisanth | not sure what you mean by that but you can use the rules through PGE if you also have parrot | 05:36 | |
cwest | What I need is to use the source. | ||
nothingmuch | cwest: you're a javascript dude, right? | 05:39 | |
cwest | I'm becomming one. :-) | ||
nothingmuch | maybe you can help me with some DOM crap? | ||
cwest | Soon I'll be one of you though. | ||
nothingmuch | =). | ||
damn . key | |||
cwest | Ah, I'm not that good, but I'll give it a go. | ||
Khisanth | hmm trying to use the rules right causes a segfault :/ | 05:40 | |
cwest | heh | ||
Khisanth | err right now | ||
get_pmc_keyed() not implemented in class 'String' | |||
cwest | I was thinking that I could get my code to PIL really easy by running rules, which would also make a parser easy. | ||
nothingmuch | i need to have a <tr>...</tr> | ||
which represents a single line of smoke results | 05:41 | ||
like in nothingmuch.woobling.org/pugs_test_status | |||
QtPlatypus | The big thing that isn't working is closures in rules. | ||
nothingmuch | a single line can contain multiple rows of test cells - they are in a nested table | ||
anywho, upon clicking some little javascript button, the two cells on the left are rowspan=n | |||
Khisanth | QtPlatypus: "a" ~~ /<[a-z]>/ works for you? | ||
nothingmuch | and then there are n rows, with a line of cell-tables per each one | 05:42 | |
for some cases the "expanded" view is the default | |||
QtPlatypus | No but | ||
"a" ~~ /<[a..z]>/ does | |||
cwest | huh | 05:43 | |
I do not see any expanded views. | 05:44 | ||
Nor do I see a way to create them. :-/ | |||
nothingmuch | that's what i'm working on right now =) | 05:45 | |
cwest | oh right. | ||
Khisanth | QtPlatypus: which revision? | 05:46 | |
cwest | so you need to get at the dom to do this. | ||
nothingmuch | right | ||
QtPlatypus tried to do something by doing. /(<[a..z]>) {something($/[0])}/ but it doesn't work for me | |||
nothingmuch | and I don't even know how to generate the HTML | ||
cwest | Do you have an example of the extended entry anywhere? | 05:47 | |
nothingmuch | let me try to hack something... 3 mins | ||
QtPlatypus | r5117 with 0.2.1 Parrot | ||
cwest | and do you have control of the thing that is generating this current html? | ||
Khisanth | QtPlatypus: I was trying with r5084 | 05:48 | |
QtPlatypus | Khisanth: Make sure you have checked out the most recent Parrot. pug's rules are implemented via the PGE. | 05:49 | |
Which comes with Parrot. | |||
Khisanth | QtPlatypus: heh see scrollback ;) | 05:50 | |
nothingmuch | nothingmuch.woobling.org/example.html | ||
cwest | nothingmuch: minor nit, align the text in the Test file row(s) to the top. | 05:51 | |
okay, so we could do this I think. | |||
One way to do it is to also embed the table full of extended rows in the Test cases table cell. | 05:52 | ||
Then toggle the view of either of them with the +/- links. | |||
nothingmuch | that is, have an expanded row version, and a collapsed row version of each thing? | 05:53 | |
i like that, let me hack it in | |||
cwest | yes | ||
nothingmuch | btw, is there any way to group several rows? | ||
reload the example | |||
QtPlatypus | Has perl6's grammer been written in perl6 grammer yet? | ||
cwest | Now, when you hack that in you need to keep an iterator and add id='' attributes to each of the tables. | 05:54 | |
QtPlatypus | Has perl6's grammer been written as a perl6 grammer yet? | ||
nothingmuch | you see in 'dummy.t', which is inconsistent, because some tests fail in one version but not in the other, there's a border around the box | ||
cwest | So for example, 'extended-006' and 'collapsed-006' | ||
nothingmuch | and also one inside the box | ||
okay, makes sense | |||
cwest | right, we could do that. we just need to be creative. | ||
So you have either pass, fail, or parital states for a test run. | 05:55 | ||
nothingmuch | uh, that's scary ;-) | ||
say again? | |||
cwest | Right. | ||
Either you have 100% pass, 100% fail or something in between. | |||
The something in between "all good" and "all bad" is what you want to set appart. | 05:56 | ||
er, apart. | |||
nothingmuch | oh, no, not exactly | ||
cwest | so generate a class="inconsistent" for each <tr> row that is inconsistent. | ||
nothingmuch | this is supposed to display multiple reports in the same file | ||
where test files that don't agree between reports | 05:57 | ||
that is, test case 10 of file cwd.t failed on windows | |||
cwest | Okay | ||
nothingmuch | it's a sort of diff of test reports | ||
cwest | So in what condition do you want t/dummy.t to be highlighted? | ||
nothingmuch | can I say '<tr><td rowspan=2>...</td></tr><tr>...</tr>' and because the first tr doesn't have all the required <tds> it gets displayed on the same line? | 05:58 | |
in the current example, one test randomly failed - the first one | |||
in one version | |||
but everything passed in the first version | |||
of dummy.t | |||
on the other hand path.t fails the same way | 05:59 | ||
so it's consistent | |||
consistent cases get folded | |||
inconsistent ones are expanded | |||
cwest | Okay, so anything with yellow on the far right is inconsistent? | ||
nothingmuch | nope =) | ||
look at paths.t | |||
it's consistent | 06:00 | ||
cwest | okay (sorry) | ||
okay, because the failures line up? | |||
nothingmuch | right | ||
cwest | Bingo | ||
alright. | |||
When generating a row for a test file, do you know this state ahead of time? | |||
nothingmuch | yes | 06:01 | |
cwest | excellent, then you can use that to set a class='inconsistent' attribute on the table row containing your test file information. | 06:02 | |
nothingmuch | yup | ||
my problem is mainly with structure | |||
oh wait, I have an idea on how to simplify | 06:03 | ||
cwest | okay, in that case I would suggest that in the table sell after the OK/FAILED/SKIPPED cell, just put both tables. | ||
Both the expanded and collapsed tables. | |||
One right after the other. | |||
nothingmuch | one table is hidden, and 'toggle' just swaps table rows with the same index? | 06:04 | |
cwest | yes exactly | ||
openjsan.org/js/DOM/Display.js -- this class will get your javascript most of the way there. | |||
It may be a little heavy but it's well encapsulated. | 06:05 | ||
nothingmuch | goody | ||
cwest | also, uncomment the first commented line. if you aren't using my JSAN library that's a bug. | ||
(oops) | 06:06 | ||
nothingmuch | okies | 06:07 | |
cwest | So if you go one further and use <noscript> tags to give headings to each table, this will make your testing system look really sexy to non-js browsers. | ||
They'll get both outputs but it'll be very understandable. | |||
But honestly, who uses that old crap anymore? | 06:09 | ||
QtPlatypus waves his hand. | 06:10 | ||
QtPlatypus uses lynx rather then javascript. | 06:11 | ||
QtPlatypus uses lynx rather then a javascript enabled browser. | |||
cwest | no, you're just playing devil's advocate. :-) | 06:12 | |
Anyway, it'll work is the poing (and links has js support) | |||
s/poing/point/ | 06:13 | ||
QtPlatypus uses it because he mostly hits text heavy sites and I can run it under screen. | 06:14 | ||
I hate being forced to use a graphical browser. | |||
cwest | that's okay, I hate testing javascript in a browser | 06:15 | |
nothingmuch | hmm..... | 06:21 | |
reload... some progress | |||
cwest & # on sec | 06:24 | ||
what would you put in some_text? | 06:25 | ||
nothingmuch | something that distinguishes the result sets | 06:26 | |
like 'Windows, perl version', or whatever | |||
cwest | okay | ||
nothingmuch | now I'm workiong on omitting the expanded view when there's nothing to show | 06:27 | |
cwest is hacking the js for you | 06:28 | ||
nothingmuch | ooh lah lah | 06:29 | |
cwest: do you use darcs? | 06:30 | ||
cwest | I've never done. | ||
but why not start. | 06:31 | ||
nothingmuch | =) | ||
go fetch a binary from darcs.net | |||
then do 'darcs get nothingmuch.woobling.org/Test-TAP-Model' | |||
and 'darcs get nothingmuch.woobling.org/Test-TAP-HTMLMatrix' | |||
Khisanth | hmm | 06:32 | |
nothingmuch | (you can browse these URLs without darcs) | ||
cwest | okay | ||
Khisanth | QtPlatypus: still segfaults with 5137 | ||
QtPlatypus | Khisanth: Odd. Latest parrot check out? | 06:35 | |
nothingmuch | cwest: to get example.html working I run: perl -Ilib -I ../Test-TAP-Model/lib example.pl && open example.html | ||
Khisanth | yes | 06:36 | |
nothingmuch | example.pl will run the test suite foor Test-TAP-HTMLMatrix, once normally, and once with $ENV{TEST_FAIL_RANDOMLY} | ||
which causes t/dummy.t to spew out failures | |||
whenever the class of the rows is 'normal' it should be collapsed by default | 06:37 | ||
and whenever it's 'diff' it should be expanded by default | |||
QtPlatypus | Khisanth: Thats odd. Did you embed parrot or run it indepentely? Also how much memory do you have? I've noticed that with some of my more complex rules PGE's memory usage explodes. | 06:38 | |
nothingmuch | cwest: i'm tired, and you should also be | 06:39 | |
want to continue tomorrow? | |||
stevan: darcs pull for initial consolidated view | |||
Khisanth | <[a-z]> is complex? :) | ||
QtPlatypus: hmm embeded | 06:40 | ||
QtPlatypus | Khisanth: It isn't. Have you tried <[a..z]> ? | 06:41 | |
Khisanth | also segfaults | ||
Rev. 8489 of parrot | |||
cwest | caseywest.com/code/tap.html | ||
That shows the toggles (I just grabbed your source) | |||
only working on dummy.t | |||
nothingmuch | cwest++; # you rock! | 06:42 | |
QtPlatypus | Odd. | ||
nothingmuch | i'll integrate and generalize tomorrow before my flight | ||
stevan: check out caseywest.com/code/tap.html and nothingmuch.woobling.org/example.html | |||
cwest | nothingmuch: If you look at the inline <script> you can see that I defaulted to the collapsed but I'm sure you can see that the templates could default based on the logic the generator knows. | 06:43 | |
cwest is working out the darcs thing now | 06:44 | ||
gaal | morning! | ||
cwest | *nod* | 06:45 | |
[cwest@espresso code]$ darcs get nothingmuch.woobling.org/Test-TAP-Model | 06:46 | ||
dyld: Library not loaded: ../GMP.framework/Versions/A/GMP | |||
Referenced from: /usr/local/bin/darcs | |||
Reason: image not found | |||
Trace/BPT trap | |||
this would happen to me | |||
cwest also need ghc | 06:48 | ||
I'm behind I guess. :-) | |||
nothingmuch | morning gaal | 06:56 | |
cwest: your diagnosis that you need a ghc is correct | |||
cwest: as for defaultness - yup | |||
gaal | nm: cool story about the flight, i hope you're not too flustered though! | 06:59 | |
cwest installs ghc package | 07:00 | ||
QtPlatypus | ?eval my Int $anint = +"Not a number, not even NaN";$anint | ||
evalbot6 | \0.0 | ||
cwest | Copying patch 4 of 49... | 07:02 | |
darcs failed: Failed to download URL nothingmuch.woobling.org/Test-TAP-H...793aa9f.gz | |||
libcurl: HTTP error (404?) | |||
? | |||
nothingmuch | uh, odd | 07:03 | |
i'll zap that repo and repush | |||
cwest | yeah, after four, consistently. | ||
okay | |||
nothingmuch | try now | 07:04 | |
ok, we're getting there... reload example. | |||
(no js yet, but we have IDs) | 07:05 | ||
cwest | cool. | ||
Once I get this stuff I think it'll be a quicky. | |||
Plus this is giving me time to read the darcs manual. ;-) | 07:06 | ||
okay, got it all. | |||
nothingmuch | heh =) | ||
cwest is installing deps | 07:08 | ||
nothingmuch | hmm... new direction: | ||
walk the table | |||
no multiple 'var toggle00x' | |||
just set it | |||
and then supply two functions. | |||
makes sense? | |||
cwest | yeah. walk each child, getAttribute('id') for the table rows, getAttribute('class').split(/\s+/) for finding the diff class. | 07:09 | |
I think it's pretty doable. | |||
nothingmuch | okay | 07:10 | |
cwest | Are you doing this or just giving me suggestions? | ||
nothingmuch | i'm googling for this stuff | ||
i'll have a go | |||
cwest | ah, of course. | ||
cool | |||
nothingmuch | if i don't have something in 10 minutes I'll delegate =)_ | ||
cwest | mkay | ||
nothingmuch | how do i compare strings in JS? | 07:13 | |
cwest | == | 07:14 | |
gaal | nm, your monad-fu requested at sial.org/pbot/11479 | 07:15 | |
cwest | hrm, I can't get my local copy to get the [+]/[-] stuff output, even though I know that I can see it in template.html | ||
nothingmuch | gaal: okay, one sec | 07:17 | |
hmm..... maybe i didn't check in enough changes | |||
gaal | there's another error about no instance for (Functor TVar) | ||
nothingmuch | cwest: give me 2-3 mins, and i'll slap everything together, and recommit | 07:18 | |
cwest | cool | ||
nothingmuch | uh, my Run.hs is not 546 lines long... | 07:19 | |
what's the enclosing function's type signature? | |||
i also can't find ^glob in there | |||
gaal | true. this code is from the output of pugs -CPugs src/perl6/Prelude.pm, which i had more or less slapped there | ||
nothingmuch | ah | ||
so can you show me the full signature of glob? | 07:20 | ||
gaal | hmmm, no :) it isn't generated | ||
nothingmuch | eep | ||
gaal | but i'll see if i can figure it out | ||
ooooofff, pugscc itself doesn't work on win32, what a pain in the ass | 07:21 | ||
cwest | (I like darcs now, btw :-) | ||
nothingmuch | cwest: it's very nice =) | 07:22 | |
the UI is wonderful | |||
it's like SVK, but for dumdums | |||
gaal: eep... i think this is too much for me... i can't infer all that myself | |||
autrijus's taxi leaves in 3 hours | 07:23 | ||
maybe he can help | |||
cwest | if course this now means I'm using darcs, svn, and cvs all at the same time. I have an editor problem like that too, using emacs, vim, and textwrangler all at various times. | ||
gaal | he looks like he can use some rest :) | ||
but if you can tell him to take a look at it, well, cool | 07:24 | ||
nothingmuch | cwest: why are there numerous toggle00x objects? | 07:27 | |
gaal: he is during deep power cycling | |||
(asleep right now) | |||
cwest | nothingmuch: each one represents a group of things to be toggled. | 07:28 | |
gaal | figured | ||
nothingmuch | i think he slept around 20+ hours since he left the hotel | ||
cwest | nothingmuch: However that was the KISS model. | ||
nothingmuch | cwest: oh | ||
i need to reread your code | |||
cwest | It may not /need/ to be improved but it can be. | ||
Yeah, it's just the dummy.t records | |||
nothingmuch | does .split(regex) return a list/ | 07:29 | |
cwest | I added <tbody> tags for each *group* (1 collapsed + 1 expanded), and the <script> tags to set up the DOM.Display objects. | ||
yes it does. | |||
nothingmuch | yeah, i used tbody | ||
var elems = id.split('_') | |||
if (elems[0] == 'collapsed') | 07:30 | ||
? | |||
cwest | yes | ||
exactly | |||
nothingmuch | how do i concat a string? | 07:31 | |
+? | |||
sili_ | yes | ||
cwest | yes | ||
and if you're going there, .join() *returns* an object with two strings joined on a delimiter. | 07:32 | ||
nothingmuch | okay | 07:34 | |
can i query a toggle for whether an element is hidden or shown? | |||
i guess I could write toggle() function that just swaps the bits | 07:35 | ||
cwest | no | 07:36 | |
add this to the class def | |||
isShown: function (id) { | |||
var elem = document.getElementById(id); | |||
if (elem.style.display == "none") return false; | |||
return true; | |||
} | |||
(sorry for not using nopaste) | |||
nothingmuch | i think i have a simpler solution | 07:37 | |
cwest | okay | ||
nothingmuch | how do i enumerate a register? | ||
cwest | I did conceed that DOM.Display could be overkill here. ;-) | ||
nothingmuch | no, it's pretty convenient | ||
cwest | for (var i in register.properties) | ||
there is an example in the definition of showOnlyElement | 07:38 | ||
also | |||
nothingmuch | hmm | 07:40 | |
debug help | |||
reload example.html | |||
spinclad | btw i usually have js turned off in my browser (mozilla 1.7.8), which tends to die fairly quickly if i have it on. | ||
nothingmuch | spinclad: the js is quite optional | 07:41 | |
all the data is there otherwise | |||
i'll add an option to make it prerendered, so that there's no JS at all | |||
but then you can't have access to all the data, but it does look pretty | |||
spinclad | sure, i heard. just another data point for an old question. | ||
cwest | s/.properties// in your for loop. | ||
also, a comma after the function declaration for registerElement. | 07:42 | ||
That might do it. | |||
And I'm stealing that for myself. ;-) | |||
spinclad | and thanks | 07:44 | |
nothingmuch | toggleDisp() is not being called... I don't get any alert.... odd. | ||
cwest | you have a parser error | ||
at least in the version on nm.woo... | |||
nothingmuch | i'll upload the revised one | 07:45 | |
how do I see parse errors in browser foo? | |||
nevermind | |||
cwest | okay | 07:48 | |
I'm fixing a bunch of stuff. | |||
nothingmuch | getElemById => what is the real method name? | ||
cwest | you may want to diff/patch off of caseywest.com/code/exmaple.html | ||
getElementsById | |||
nothingmuch | oh, element | ||
cwest | class is a reserved word. | ||
nothingmuch | yeah, i got that far =) | 07:49 | |
cwest | You were writing perl 6 or java or something. ;-) | ||
var i = 0; instead of int i = 0; | |||
or C | |||
nothingmuch | C i guess | ||
404 | |||
cwest | so you need ot run this stuff inside of an onload function. | ||
sorry, here: caseywest.com/code/tap.html | 07:50 | ||
nothingmuch | i do that | ||
reload | |||
wait, not yet | 07:51 | ||
okay | |||
cwest | heh, okay | ||
nothingmuch | getChildNodes is appearantly bull | ||
i wonder where I googled that off | |||
cwest | I'm looking this up | 07:52 | |
childNodes | |||
which is a list | |||
so you can just copy it | |||
var bodies = matrix.getChildNodes; | 07:53 | ||
nothingmuch | yep | ||
cwest | er, crap | ||
matrix.childNodes; | |||
nothingmuch | and then bodies.length and bodies[i] | ||
? | |||
cwest | yes | ||
nothingmuch | "matrix.childNodes is not a function" | ||
cwest | no, do not use () | 07:54 | |
nothingmuch | ah | ||
C++ | |||
=) | |||
cwest | :-) | ||
"Once you know one, you know them all..." -- bull | |||
nothingmuch | too many languages == confusion | ||
once you know em all they all become one | |||
and then you know a part of each | |||
cwest | yep | ||
nothingmuch | getAttribute is now not a function... does it have a nicer name? | 07:55 | |
var elm_cls = body.getAttribute('class'); | |||
sili_ | ya like i know the php and the other day i tried to s/re_for_line_at_end_of_string// | ||
cwest | I'm told there is an .attributes method | 07:56 | |
or accessor | |||
perhaps .attributes[id] | |||
nothingmuch | eek | ||
cwest | s/id/class/ | ||
nothingmuch | oh wait, that's not magic | ||
that's an associative array | |||
i forgot that [] is really an operator | |||
body.attributes has no properties | 07:57 | ||
maybe body is a reserved word too? | |||
cwest | attributes["class"].nodeValue.split(/_/) | ||
give that a go | |||
nothingmuch | as a method of body? | ||
cwest | yes | 07:58 | |
nothingmuch | same | ||
cwest | bah | 07:59 | |
so what happens if you alert(body.attributes.length); as a first debug step? | |||
oh, and I think you want var body = bodies[i]; | 08:00 | ||
nothingmuch | i did say that | ||
which makes it very odd | 08:01 | ||
cwest | and bodies.length in the for condition | ||
I think you weren't reading dom docs but perhaps actually IE docs. | |||
nothingmuch | oh | 08:02 | |
=) | |||
cwest | getId probably should not work either. | 08:03 | |
nothingmuch | right | 08:05 | |
body.className works | |||
cwest | cool | 08:07 | |
so getAttribute() should totally work onw | 08:09 | ||
s/onw/now | |||
nothingmuch | how do i check for definedness? | 08:11 | |
cwest | == undefined | ||
!= undefined | |||
but sadly some things can be null | |||
you may want to check first | |||
I have confirmed getAttribute('id') will work. | 08:12 | ||
So does .id | |||
body.id | |||
nothingmuch | i'm using body.id | 08:13 | |
cwest | rock | ||
must be close | |||
nothingmuch | hmm | 08:16 | |
cwest | ? | 08:17 | |
nothingmuch | reload | ||
i don't know why this isn't working now | |||
cwest | body.id is either undfined or empty | 08:19 | |
nothingmuch | eek | ||
that's weird, i had an alert there, and it usually displayed OK | |||
cwest | or collapsed_N | ||
nothingmuch | i think you're right | 08:20 | |
cwest | you need to skip certain node types | ||
nothingmuch | if (split_id[0] == 'expanded') { | ||
alert('got a body with id ' + elm_id); | |||
that alerts properly | |||
cwest | so body.nodeType == 1; // this is an element | ||
you are getting other types like text | 08:21 | ||
nothingmuch | oh | ||
cwest | if (body.id && body.nodeType == 1) { | ||
nothingmuch | yup | 08:22 | |
doesn't work yet | |||
cwest | but I am not getting the toggle either | ||
nothingmuch | oh! i think i got it | 08:23 | |
cwest | oh | 08:24 | |
nothingmuch | yes1 | ||
cwest | hideElement(body.id) | ||
nothingmuch | right | ||
cwest | same for the showOnly one, but I'm sure you got htat | ||
nothingmuch | now to see why toggleOnly | ||
doesn't work | 08:25 | ||
cwest | you need | ||
var elem = document.getElementById(id); | |||
at the top of toggleHidden | |||
nothingmuch | oh, because registry contains ids | ||
cwest | and the function should accept (id) | 08:26 | |
(still doesn't fix links) | |||
but I got the initial collapsing working | |||
nothingmuch | wait, why does the function need to accept (id)? | 08:27 | |
cwest | oh, no, you're right | ||
var elem = document.getElementById(i); | 08:28 | ||
inside the for loop | |||
nothingmuch | the register iteration thing is not working | ||
for (var id in this.register) { | |||
alert('i got ' + id + ' from the regiser'); | |||
no alerts when clicking | |||
or invoking manually using javascript: scheme | |||
cwest | bah | 08:29 | |
nothingmuch | what is the {} structure called? | ||
cwest | showOnlyElement works, I know that for sure. | ||
That's an object. | |||
nothingmuch | cute =) | ||
i'm assuming a copy of the root object? | |||
gaal | nothingmuch, is autrijus up? | 08:30 | |
cwest | if by that you mean new Object() then yes | ||
nothingmuch | gaal: nope.... try again in 1 hour | ||
cwest | I could have said: register: new Object(), | ||
nothingmuch | okay | ||
how is this.register an associative array? [] on object does arbitrary property access? | |||
gaal | thanks. i got past the compilation problems, but now i have env problems. they're essentially Reader questions, maybe you can help! | 08:31 | |
cwest | nothingmuch: yes it does | ||
gaal | i managed to inline the precompiled prelude (manually, so far), and have it actually run when pugs loads | ||
problem is (i think) it gets its own env | |||
nothingmuch | hmm... i wonder why it's not actually doing anything | ||
gaal: i'll let him know | |||
if i am not 100% zonked when he wakes me up | 08:32 | ||
gaal | so i need to do some "local" magickery for the results of the evaluation to actually stick | ||
nothingmuch | right | ||
gaal | but i'm not in the Eval monad | 08:33 | |
so i don't know how to do that. | |||
nothingmuch | err, where are you? | ||
gaal | do you know prepareEnv? Run.hs | ||
nothingmuch | nopd | ||
nope | |||
i'm afraid I'm not in a state of mind where i'm useful though | 08:34 | ||
cwest | nothingmuch: good question. can you alert(this.register) ? | ||
nothingmuch | it's very late | ||
gaal | hmm, that's hte nice function that sets up the standard symbols and stuff, then calls initPrelude | ||
never moose, i'll keep hacking myself | |||
nothingmuch | hmm... nothing | ||
cwest | ds | 08:35 | |
nothingmuch | oh, i'm not calling it right | ||
cwest | var toggle = toggles[idx] = new DOM.Display(); | ||
Does that work? | |||
nothingmuch | toggles[elem].toggleHidden(); | ||
cwest | oh, yes | ||
otherwise you get code back :-) | |||
Thyat's it! | 08:36 | ||
nothingmuch | yep =) | ||
() is the function app op? | |||
cwest | yep | ||
It's gonna be great trying to emulate that when calling the DBI from JS. ;-) | 08:37 | ||
nothingmuch | woot! it works! | 08:38 | |
reload | |||
gaal | cwest++ nothingmuch++ | 08:39 | |
cwest | rock | ||
So, at least in my browser, if you s/... expanded view:/Detail/ you don't get the funky resize stuff. | 08:40 | ||
nothingmuch | fixed =) | ||
cwest | cool | 08:41 | |
I like it | |||
nothingmuch++ | |||
nothingmuch | cwest++ | ||
cwest | (Not it's 4:45am, I'm going to get some sleep) | ||
nothingmuch | eek | ||
spinclad | nothingmuch++ cwest++ | 08:42 | |
nothingmuch | safari invents some borders that firefox doesn't | ||
spinclad: i promise you some javascript-free stuff tomorrow | |||
but it really is 4:45am, and I also need sleep | |||
cwest | This will look nice even without javascript. | ||
spinclad | no hurry | ||
gaal | i hope autrijus pops by before he leaves | 08:43 | |
nothingmuch | cwest: email? | ||
cwest: without js it's just the same, but no [+] and [-] | |||
cwest | [email@hidden.address] | ||
gaal | it *almost* works! code is evalled but apparently symbols are not installed | ||
or maybe they're installed in the wrong place | 08:44 | ||
more likely. | |||
nothingmuch | is it ok to mention the email in module docs? | ||
cwest | yeah, no worries | ||
nothingmuch | btw, do you have pugs committership? | ||
cwest | I have to commit something first right? Then not yet. | ||
I'm on my way since I'm got this crazy idea of making parrot the new js engine for mozilla. ;-) | 08:45 | ||
nothingmuch | darcs pull | ||
cwest does so | |||
nothingmuch | cwest: check mail | 08:46 | |
(you are now a comitter) | |||
anyway, sleep | |||
cwest | cool | ||
nothingmuch | release TTH tomorrow | 08:47 | |
cwest | you too | ||
nothingmuch | oh wait, sorry | ||
darcs pull *now* | |||
cwest | y | ||
nothingmuch | (i thought I did push -a but I was wrong) | ||
cwest | heh, I was wondering | 08:48 | |
sleepy sleepy :-) | |||
nothingmuch | thanks so much, cwest | ||
you've been very very useful | |||
cwest | np, and thanks | ||
cwest & | 08:49 | ||
gaal | autrijus, two items on the agenda for getting precompiled Prelude in (i'm typingaheading): | 08:51 | |
1. pugsy: things are getting run, but apparently not in the correct env | 08:52 | ||
2. (haskell/makey): for now i'm assuming it's okay to modify Run.hs on the fly. very very hacky, but avoiding that would require (i think) boot files, which we can clean up after the release. | 08:53 | ||
pasteling | "gaal" at 192.115.25.249 pasted "current initPreludePC" (7 lines, 346B) at sial.org/pbot/11485 | 08:54 | |
gaal discovers OPTIONS_GHC -cpp and realizes #2 can be made much better. | 08:57 | ||
autrijus | gaal: I got the backlog with me. | 09:46 | |
gaal | yay! i've hacked a gen_prelude.pl that mangles the -CPugs output, testing it now | ||
autrijus | ok. my cab leaves in 10 minutes | ||
please check in whatever you have, since toronto airport has no wireless | 09:47 | ||
I'll check back in... 20 hours :) | |||
gaal | i will, though i'm wary of breaking tests (i will be removing the old prelude) | ||
thing that bugs me is that i bet it's just some "local" one-liner fix :( | 09:48 | ||
autrijus | you can alternatively nopaste the patch | ||
or commit and then revert again | |||
both worksforme | |||
gaal | heh, cool. okay | ||
have a great trip! | 09:49 | ||
autrijus | thanks! | ||
...so, are you committing or nopasting? :) | 09:50 | ||
gaal | oh! now? | ||
sorry :)) | |||
sec | |||
errr, there's some junk in this commit (pugscc changes are all bogus) but it's already transmitted | 09:52 | ||
committed as r5138; i'll revert it now | |||
autrijus | good then. have fun | ||
I got r5138 | |||
& | |||
gaal | thanks, you too | ||
autrijus | :) | 09:53 | |
masak | have a good trip, autrijus | ||
gaal | wtf? svn merge -r5138:5137 svn.openfoundry.org/pugs | 09:56 | |
svnbot6 | r5138, gaal++ | precompiled Prelude (WIP) | ||
gaal | svn: Use --force to override this restriction | ||
svn: 'pugs' is not under version control | |||
what's that mean? | |||
QtPlatypus | ?eval grammer Foo { rule bar {bar}}; "bar" ~~ /<Foo::bar>/ | 11:47 | |
evalbot6 | Error: No compatible subroutine found: "&grammer" | ||
gaal | grammat | 11:48 | |
r | |||
QtPlatypus | ?eval grammar Foo { rule bar {bar}}; "bar" ~~ /<Foo::bar>/ | ||
evalbot6 | pugs: src/events.c:270: init_events_first: Assertion `rc == 0' failed. | ||
QtPlatypus | ?eval grammar Foo { rule bar {bar}}; "bar" ~~ /<Foo:bar>/ | ||
evalbot6 | pugs: src/events.c:270: init_events_first: Assertion `rc == 0' failed. | ||
QtPlatypus | ?eval grammar Foo { rule bar {bar}}; "bar" ~~ /bar/ | ||
gaal | plus, i probably broke pugs with my last commit - but for some reason it can't be reverted. please use 5137 | 11:49 | |
evalbot6 | pugs: src/events.c:270: init_events_first: Assertion `rc == 0' failed. | ||
QtPlatypus nods to gaal | |||
QtPlatypus tries it in an earler pugs. "How does one say 'rule from grammar foo'" | 11:52 | ||
gaal | i would guess <foo::rule> ? | ||
QtPlatypus nods "Doesn't seem to be implemented yet" | 11:53 | ||
The cookbook is for stuff that currently works in pugs, for stuff that works in perl6? | 12:05 | ||
(That commer is infact an "or") | 12:06 | ||
gaal | hmm, that's a good intersection, though for things that are more or less final p6 but not implemented too i'd say go ahead and include 'em but be nice and mark them that way. | ||
make unoptimized is so fun! i keep being reminded. | 12:08 | ||
masak | make unoptimized is really fast! what's the catch? | 12:55 | |
svnbot6 | r5139, gaal++ | makefile side of precompiled prelude, plus some other scaffolding work (still WIP) | ||
gaal | runtime hit. big one. | ||
oh! darn it, my code is correct! it's pugs -CPugs that's broken | 12:56 | ||
this is both good and bad news :) | |||
QtPlatypus | Handy hint site:dev.perl.org/perl6/doc/design/ in google allows you to search the Apocalypse's Exegesis and Synoposises. | ||
QtPlatypus looks confused. "I was told that given was as expression so you couldn't do something like..." | 13:02 | ||
gaal | ? | ||
QtPlatypus | $result = given $digit {when "T" { 10 };when "E" { 11 };default { $digit }} | 13:03 | |
gaal | oh, i think this oughta work but isn't in pugs yet. | ||
QtPlatypus | But its In A04 as being possable. | ||
Arh! | |||
gaal | i wanted it in some code i wrote already. | ||
QtPlatypus | Me too. | 13:04 | |
gaal | in only associatively related moose, did you know that ? : can work on the LHS of an assignment in perl 5? lots of fun. | 13:05 | |
QtPlatypus | when doesn't act like c's switch. Its more like pascal's case. | ||
Right? | |||
QtPlatypus nods to gaal. | |||
gaal | i don't remember pascal | ||
it doesn't fallthrough, if that's what you mean | 13:06 | ||
QtPlatypus | Thats what I mean. | ||
gaal | yeah, something Java got wrong and P6 right. | ||
QtPlatypus | If I wished to get commit something how would i go about getting a commit bit and what are the documents for the proccess? | 13:13 | |
gaal | any metacommitters about? | ||
Qt: you just have to send your email to one of the metacommitters; none seem to be around atm but they'll happily sign you up. | 13:14 | ||
QtPlatypus nods. | |||
gaal | then you just svn ci your stuff and it'll prompt you for authenticaltion, which you will be able to provide by the welcome email you will have gotten by that stage. | 13:15 | |
QtPlatypus nods. | |||
gaal | once you do that, in your fist commit you can add yourself to AUTHORS. | 13:16 | |
that's more or less it :) | |||
QtPlatypus nods | 13:18 | ||
Hi Drbean | 13:27 | ||
drbean | Platypus: Hey | 13:29 | |
iblech | gaal: Did you forget to svn add src/Pugs/PreludePC.hs-null? ("installing null prelude... can't open null prelude") | 13:35 | |
gaal | oops, sorry; sec | 13:36 | |
iblech | QtPlatypus: (<- metacommitter) What's your mail address? :) | ||
QtPlatypus: Invitation sent :) | 13:37 | ||
gaal | iblech++ thanks; r5140 | ||
QtPlatypus | Thanks. | 13:38 | |
gaal | but note that since pugscc is broken, you'd better use 5137 | ||
unless you can fix pugscc :) which woudl be grand | |||
iblech | gaal++ # Pugs starts **fast** with the precompiled Prelude :) | 13:40 | |
gaal | heh, partially because the environment is pretty empty :) | ||
svnbot6 | r5140, gaal++ | add missing PreludePC.hs-null + svn props | 13:45 | |
gaal | um, btw that "hello world" you're seeing if you run r5138+ is a marker that the inlining did in fact take place. i'll remove it asap :) | 13:51 | |
iblech | Yep, saw that, np. I'm moving the declaration of %*INC from Prelude to Pugs.Run currently so the tests don't die | 13:53 | |
gaal | well, many will, of course | ||
if we want we can have them 'use Prelude.pm' in the interim | 13:54 | ||
hey, is Prelude.pm installed by make install? it oughta be... | |||
hmm, it is, but not in @*INC, so 'use Prelude' won't work. | 13:55 | ||
what influences MakeMaker in building pm_to_blib? | 13:58 | ||
svnbot6 | r5141, qtplatypus++ | Adding a new entry for the cookbook. Valid number detection. | 14:03 | |
QtPlatypus | Rules are so more readable then perl5 regexs. | 14:08 | |
svnbot6 | r5142, iblech++ | Added section about the usual SVN props to pugs::hack and removed old | 14:14 | |
r5142, iblech++ | docs/other/development_tips. | |||
r5143, iblech++ | * Moved declaration of %*INC from Prelude to Pugs.Run, so not all tests die. | |||
r5143, iblech++ | * Added check for %*ENV<PUGS_BYPASS_PRELUDE> to util/gen_prelude.pl and removed | |||
r5143, iblech++ | the old (commented) Pugs.Run.initPrelude. | |||
r5143, iblech++ | * Added PreludePC.hs to svn:ignore of src/Pugs. | |||
r5143, iblech++ | * Usual svn props added to new files, QtPlatypus++. | |||
gaal | iblech, thanks for the gen_prelude celanups! | 14:16 | |
cleanups even. | |||
meppl | <gaal> iblech, thanks for the gen_prelude celanups! | 14:17 | |
<gaal> cleanups even. | |||
--> iblech (~iblech@2001:8e0:abcd:14d:2e0:7dff:fee5:bff) has joined #perl6 | |||
gaal | (soon we can remove the old src/gen_prelude.hs and Prelude.hs) | 14:18 | |
malaire | hmm.. should r5143 compile or not? I'm getting error "Installing precompiled prelude... Can't exec "pugs": No such file or directory at util/gen_prelude.pl line 42." | ||
iblech | meppl: Thanks | ||
gaal: Right | |||
malaire: It should | |||
malaire: Probably you don't have pugs in your $PATH | |||
gaal | hmm, but if | 14:19 | |
yeah | |||
that's broken | |||
but changing the makefile to just say ./pugs won't work (because of windows) | |||
beh. | |||
sec, i'll fix that. | 14:20 | ||
malaire: thanks for the note, please try 5144. | 14:27 | ||
svnbot6 | r5144, gaal++ | fix to use local pugs; add PreludePC.hs to cleanlist | ||
malaire | gaal: r5144 works, thanks! | 14:33 | |
gaal | great | ||
15:03
rafl_ is now known as rafl
|
|||
Limbic_Region | theorbtwo - I assume you are safely back in Deutchland? | 15:50 | |
gaal | hmmm, very weird: | 16:37 | |
svnbot6 | r5145, gaal++ | make sure first pass compilation always compiles Run, for added reliability | ||
gaal | ./pugs-nop.exe -MPrelude -e 'say "hi"' | ||
hello, world! | |||
hi | |||
("-nop" is the no-precompiled-prelude pugs) | 16:38 | ||
But: | |||
./pugs-nop.exe -MPrelude t/builtins/undef.t | |||
hello, world! | |||
....and nothing more. | |||
that is, the module is loaded, but the file isn't. | |||
anyone with a pre-5138 pugs that can test if this happened there too? | 16:39 | ||
beh, yes, it happens there too. | 16:40 | ||
-M is somehow buggy; i guess that means the canonization in Pugs.Run.Args is wrong | 16:41 | ||
putter | QtPlatypus: there is the beginning of a grammar for regexs in modules/Grammar. It would be nice to have it fleshed out...;) | 16:51 | |
cwest | that would be cool | 16:55 | |
is it possible to take grammars and convert them to PIL? (I'm unfamiliar with any of this.) | |||
putter | Currently pugs hands the patterns off to PGE (written in (sigh, everything starts with P) PIR), which parses the patern and generates PIR, creating the matcher. | 17:03 | |
There has been talk of teaching pugs to parse regexps itself, and perhaps evaluate them, in which case I assume they would be added to PIL, but nothing done that I know of. | 17:04 | ||
I've been hoping someone will flesh out the regexp grammar. There is a fuzziness currently, with incomplete implementations of a spec spread across documents and emails. I'm hoping having something concrete, a cannonical grammar{}, will seed progress. | 17:07 | ||
QtPlatypus nods to putter "Thanks" | 17:10 | ||
putter: Wouldn't teaching pugs to parse regexes be a step backwards? | 17:12 | ||
castaway notes putter is volunteering ;) | 17:13 | ||
castaway hugs nothingmuch | 17:15 | ||
QtPlatypus | Is there anyway to say define a range with steps other then 1? | 17:16 | |
(remove the stray say in that sentence) | 17:17 | ||
gaal | Qt: :by, but i dont' think it's in, and not actualyl sure it's finalized. | ||
?eval 1 .. 10 :by 2 | 17:18 | ||
evalbot6 | *** No compatible subroutine found: "&eval" at -e line 8, column 5-38 | ||
castaway | theres a way to loop with other stepsyes | ||
gaal | ?eval 1 .. 10 :by<2> | ||
evalbot6 | *** No compatible subroutine found: "&eval" at -e line 8, column 5-40 | ||
wolverian | ?eval 1 | ||
evalbot6 | *** No compatible subroutine found: "&eval" at -e line 8, column 5-19 | ||
wolverian | haha. | ||
gaal | i forgot, i broke evalbot. | ||
castaway | ?1 | ||
gaal | damn: ) | ||
castaway | grats ;) | ||
gaal | iblech, ping? | ||
(just need to use the prelude explicitly to be fixed) | 17:20 | ||
putter | QtPlatypus: pugs currently depends on PGE (or pcre for rx:perl5/.../) to handle regexps. so if you say generate javascript from PIL... you still need to drag parrot along just for the regexps. | 17:27 | |
castaway: but only in a low key, encourage others to do it first, kind of way. ;) | 17:29 | ||
cwest | Interestingly I plan to drag parrot along to do just that. ;-) | 17:30 | |
QtPlatypus | Given that almost every lang has libaries to give it "perl5" style regexes. Packaging parrot and the PGE as a libary to give langs "perl6 style rules" would be an easy way to accelarate the installation and distrabution of parrot. | 17:34 | |
putter | Interesting idea. Could be. My other thought is... | 17:40 | |
Haskell might be a better language than PIR to write the thing in. Right now we have a simple parser, parse tree, codegen, and engine bits. All written in PIR. Which is good in avoiding C's unicode issues, but... | 17:42 | ||
QtPlatypus thought that pugs did lazy lists but "for (1...) -> $a {say $a}" blows up. | 17:44 | ||
putter | We are going to need analysis and optimization too. And I suspect for performance we are eventually going to want hybrid engines. And for convenience, some degree of automated grammar transformation. Writing that in PIR... would be non-trivial. | 17:46 | |
Could write it in p6... ;) | 17:50 | ||
integral | no one's tried a core/stg to pil translator yet? | 17:52 | |
theorbtwo | Limbic -- yeah. | 17:55 | |
putter | Actually, could write it in p6, compile it to PIR, and still do the parrot-based "perl6 style rules" senario... | 17:58 | |
hey QtPlatypus. while you were briefly gone, "Actually, could write it in p6, compile it to PIR, and still do the parrot-based "perl6 style rules" senario...". ;) | 18:01 | ||
QtPlatypus nods | 18:02 | ||
I think it would get compiled to PIR by default just for the speed boost. | 18:03 | ||
svnbot6 | r5146, putter++ | MatchX now sort of almost works. | ||
QtPlatypus | putter: What does MatchX do? | 18:09 | |
putter | Hmm, it doesnt have any documentation, does it. Sigh. The current Match class has some properties which get in the way of implementing regexp engines. MatchX is intended as a temporary alternative. Being p6 rather than a primative, it is easier to tweak. But as type coersion, stringification, etc, dont work too well, neither does that aspect of MatchX. | 18:16 | |
The biggest thing is Match is immutable. | 18:17 | ||
QtPlatypus thinks that the grammer that matches Perl6 rx should be called Perl6::rx rather then rx | |||
putter | Much better. | 18:18 | |
QtPlatypus | Damn I should be asleep | 18:23 | |
svnbot6 | r5147, Stevan++ | Perl6::MetaModel - adding a TODO list for the MetaModel; adding an unofficial Synopsis 12.5 document to track the design of the Metamodel; | ||
putter | bye all. QtPlatypus, I added a doc line to MatchX, but didnt get a chance to change the grammar name - feel free. Thanks for your help. :) | 18:37 | |
svnbot6 | r5148, putter++ | Brief MatchX documentation added. QtPlatypus++ | 18:38 | |
r5149, stevan++ | Perl6-MetaModel - more docs and more TODOs | 19:46 | ||
geoffb | stevan++ # impressive progress recently! | 19:50 | |
Afternoon, Limbic_Region | 20:15 | ||
Limbic_Region | salutations geoffb | 20:18 | |
geoffb | how have you been? | 20:19 | |
Limbic_Region | tired | ||
you | |||
? | |||
geoffb | ditto, and fighting a rather persistent head cold, bleah | ||
Recovering from family visit all last week | |||
Writing my article while listening to loud music is helping immensely | 20:21 | ||
meppl | lalala | 20:47 | |
svnbot6 | r5150, qtplatypus++ | All the self hosting grammars should be called Perl6::foo | 21:34 | |
r5150, qtplatypus++ | So Rx becomes Perl6::Rx | |||
integral | wow, pugs is very fast now. ++ all of those who did that :-) | 21:58 | |
cognominal | what means ANF in Pugs/Compile.hs? | 22:10 | |
clkao | Failed 167/350 test scripts, 52.29% okay. 1704/6131 subtests failed, 72.21% okay. | 22:13 | |
lots of failures | |||
dudley | It looks like &eval is broken | 22:15 | |
geoffb | That's one way to get faster. ;-) | 22:16 | |
Chewie[] | Perl 6 needs something to split by line. Something like <<\nfoo\nbar>>. | 22:30 | |
Heredoc-like. | |||
Juerd | Needs? | ||
What about: | 22:31 | ||
my @foo = q:to'XYZZY'.lines; | |||
first | |||
second | |||
third still third | |||
XYZZY | |||
Chewie[] | You could also do <<'END'.lines # Hmm. | 22:32 | |
Juerd | Sure. | ||
Chewie[] | Or is that the replacement for heredocs, q:to? | ||
22:46
sili_ is now known as sili
|
|||
luqui believes that <<'END' is gone | 23:18 | ||
in favor of q:to | |||
theorbtwo wonders if scalar .foos vs list .foos is too cryptocontexty. | 23:36 | ||
geoffb | theorbtwo, if you mean getting a count versus getting the actual items, that seems to be a good portion of the point of being able to act polymorphically based on context . . . . | 23:42 | |
Now that forcing scalar context is a single character, I'm even happier with that WTDI | 23:43 | ||
luqui | it's just that $length = @list.lines doesn't give you a count | ||
it gives you a ref | |||
so you need +@list.lines | |||
geoffb | I don't mind +@list.lines. | ||
theorbtwo | Hmm, it doesn't? | 23:44 | |
$x = foo doesn't run foo in list context anymore? | |||
luqui | uh... | ||
never did | |||
did you mean s/list/scalar/ ? | |||
theorbtwo | erxz_paste, yes, I did. | 23:45 | |
geoffb | Of course, I personally hate auto-reference magic, because I think it is just as confusing for beginners as morphing sigils, and is likely to mess up experts who really care about whether something is a reference or not and get the hand-waving slightly wrong | ||
theorbtwo | err, yes, I did. | ||
luqui | no, it runs it in scalar context, but scalar context no longer gives you the length | ||
geoffb | Note the very fact that the two of you are having this discussion . . . . | 23:46 | |
luqui | you have to run in *numeric* context, indicated by an "int" on the var, or a + in front of the call | ||
theorbtwo | But the .lines method can care what context it's being run in. | ||
Ah. | |||
I'd like the idea a lot better if general scalar context worked. | |||
(Even though it messes with people who don't know the difference between a reference and a variable. | |||
luqui | yeah, but the auto-enreferencing has its advantages | 23:47 | |
for instance, in `push @foo, 2`, push needn't have a special parsing form | |||
I'm of mixed feelings on that decision, so I figure I'll just get used to it | |||
geoffb thought it was cool at first, and has steadily soured on it | 23:48 | ||
theorbtwo | In general, it is good. | ||
In some specific cases, it is not good. | |||
This is one of the cases where it is not good, and probably not good enough to warrant (apparently) breaking the general rule. | 23:49 | ||
geoffb | My souring has come mostly from watching people struggling in here with the number of places it is decidely not good. | ||
I'm very glad infinite deref was killed | |||
luqui | for example...? | ||
no kidding | |||
theorbtwo | The rule isn't really broken, because the more general rule is that things can do what they want to in whatever context they are run in. | ||
geoffb | I guess I shouldn't have said "decidedly not good" but rather "decidedly confusing" | 23:50 | |
luqui | okay. for example...? | ||
geoffb | the infinite deref was clearly bad, though . . . . | ||
Well, the fact that for various builtins will by default treat scalar context as auto-ref rather than numeric is at the very least confusing | 23:52 | ||
But moreso I watched Darren_Duncan struggling with passing things as desired to LKT, | |||
and autrijus et al trying to get pugs to do the right thing, | 23:53 | ||
Darren_Duncan | you rang? | ||
or not | |||
geoffb | and thought "Gee, if smart people are having this much trouble, this seems too confusing" | ||
Just using your name in vain, Darren_Duncan. | |||
Darren_Duncan | 'vain' is the wrong word to describe that | ||
geoffb | Gee, not going to accept the mantle of godhood? | 23:54 | |
s/using/taking/ | |||
Darren_Duncan | fyi, I'll probably release a major Rosetta perl 5 update today ... or tomorrow | ||
geoffb | or whatever it is the Christians say . . . . | ||
Anyway, I extrapolated from the general channel issues to the beginning Perl programmers I knew, and thought to myself, | 23:55 | ||
"And Larry thought sigil morphing was too confusing? This one will really screw people up." | |||
Did that all make sense to you, luqui? | |||
Sorry I'm rambling a bit, but I'm writing in another window, so my brain is in "spew words" mode | |||
Darren_Duncan | the context of what you refer to is people saying things like "you hurt me, so may God strike you down" ... invoking God's name from a context of anger or hate etc | 23:56 | |
still that is all off topic | |||
geoffb | ah. noted. | ||
Darren_Duncan | that's what "God's name in vain" means, as I understand it | 23:57 | |
geoffb | fair enough. | ||
Darren_Duncan | regarding the original comment, I understand that autrijus et al are working on changing something called transparent references ... | ||
geoffb | I thought it was a reference to those who believe you should never refer to their deity by name. | 23:58 | |
Darren_Duncan | once that's done, the kind of stuff I wanted to do should be a lot easier and intuitive | ||
luqui | geoffb: just got back to my keyboard, commensing reading | ||
Darren_Duncan | it's not so much about refering to a deity by name, its refering to one in anger | ||
a more common version of the 'vain' thing is every time people say stuff like "Christ, why did you do that?" | 23:59 | ||
geoffb | ah! |