|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: review experimental features for promotion or removal, fix 'make html', pre-release testing. Set by moderator on 6 July 2010. |
|||
| cotto_work | coke++ for the docs refactor | 00:09 | |
| Coke | I need docs for src/dynpmc/*.pmc and tools/dev/mk_native_pbc | 00:12 | |
| darbelo | Coke: docs in what form? The pmc files seem to have embedded POD documetation. | 00:14 | |
| Coke | darbelo: rotest, subproxy, foo, and foo2. | ||
|
00:15
ruoso joined
|
|||
| darbelo | Ah. I hadn't looked at those. | 00:15 | |
| Coke | sorry, I hadn't look at what other ones were there. =-) | ||
| darbelo | But, with the exception of subproxy, those are there for testing purposes. | ||
| cotto_work | khairul's branch keeps some non-testing dynpmcs there | 00:16 | |
| Coke | ok. if someone adds docs for subproxy, I can exclude the other 3. | ||
| darbelo | cotto_work: I was referring to the one's in Coke's list. | 00:17 | |
| cotto_work | gotcha | ||
| darbelo | There's also pccmethod_test.pmc, looking at the dir contents. | 00:18 | |
| Coke | the rest all have docs. | ||
| dalek | rrot: r48039 | coke++ | branches/html_cleanup/config/gen/makefiles/docs.in: remove old html target. |
||
| rrot: r48040 | coke++ | branches/html_cleanup (2 files): Remove old tool for generating html docs. |
|||
| rrot: r48041 | coke++ | branches/html_cleanup/tools/docs/make_html_docs.pl: 'make html' is really run from docs/ - fix the script to cope. |
|||
| rrot: r48042 | coke++ | branches/html_cleanup/docs/index/tools.json: This file has been removed, don't try to generate docs for it. |
|||
| rrot: r48043 | coke++ | branches/html_cleanup/tools/docs/make_html_docs.pl: now that the old script is gone, just use docs/html |
|||
| Coke | rant: the json processor in perl tells you the file offset where the error occurred, not the /line number/ | ||
| darbelo | I've just discovered that I have no idea what SubProxy PMCs are for, other than (I suppose) proxying subs. | 00:22 | |
| And that we have pasm and pir code (with hideously outdated instructions) to 'test' them in src/dynpmc/ | 00:24 | ||
| Other than that, they look completely unused. | 00:27 | ||
| The fact that it's referred as "Sample SubProxy class" in the .pmc file doesn't fill me with confidence either. | 00:28 | ||
|
00:29
lucian joined
|
|||
| cotto_work | -Ofire | 00:32 | |
| darbelo | Well, we *do* have a test under t/dynpmc/ that uses it. But I'm guessing it's just another 'test' dynpmc. | 00:33 | |
| cotto_work | It didn't appear to have much substance. | ||
| darbelo | The invoke() vtable seems legit enough. | ||
| And 'Sub' provides the rest. | 00:34 | ||
| I wonder if PODing up the comments in there is enough to make it 'documented' | |||
| dalek | rrot: r48044 | coke++ | branches/html_cleanup/docs/index/pmcs.json: Don't generate user-docs for parrot-internal testing dynpmcs. |
00:35 | |
| darbelo | Coke: I think you might want to exclude pccmethod_test.pmc too. While it has docs, it's another internal-testing-only dynpmc. | 00:37 | |
| nopaste | "darbelo" at 192.168.1.3 pasted "Token docs for SubProxy." (38 lines) at nopaste.snit.ch/21857 | 00:38 | |
| darbelo | Coke: Same goes for SubProxy, apparently. OTOH, if you want to have it 'documented' nopaste.snit.ch/21857 will probably doit for you :) | 00:39 | |
|
00:39
kid51 joined
|
|||
| Coke | darbelo: internal testing only? removed. danke. | 00:45 | |
| feel free to commit those docs anyway. | |||
| kid51 | Coke: What exactly is supposed to happen if a naļæ½ve user types 'make html'? | 00:47 | |
| Specifically, where are those html docs created? | 00:48 | ||
| dalek | rrot: r48045 | coke++ | branches/html_cleanup/docs/index/pmcs.json: skip docs for some more apparently unused pmcs. |
00:51 | |
| Coke | kid51: docs/html, just like today. | 00:53 | |
| kid51 | Does anyone other than the release manager ever have to issue that command? | ||
| These questions may sound stupid, but there's little guidance in, say, config/gen/makefiles/root.in. | 00:54 | ||
| And in 4 years I have never felt the need to type 'make html'. | |||
| tcurtis | If anyone wants to see more up-to-date docs than are on docs.parrot.org | ||
| kid51 crosses fingers and calls 'make html' for first time ever :-) | 00:55 | ||
| mikehh | kid51: it's part of my build/test process - I usually do a make html just before a make smoke, and I do check the docs produced fairly regularly | 00:56 | |
| darbelo | Coke: nopaste committed as r48046 | ||
| cotto_work | you might as well just inline the PASM | 00:58 | |
| kid51 | I see that in trunk, at least, we are still producing some zero-byte .html files via 'make html'. | 00:59 | |
| cotto_work | That's an outstanding compression ratio. | 01:00 | |
| kid51 | No doubt the invention of all those old Bell Labs guys Google has hired. | 01:01 | |
|
01:01
rurban_ joined
|
|||
| dalek | rrot: r48046 | darbelo++ | branches/html_cleanup/src/dynpmc/subproxy.pmc: PODify the comments in the subproxy dynpmc source code. |
01:08 | |
| Coke | kid51: that's one of the tickets that drove me to redo this. | 01:11 | |
| mikehh | Coke: we still need an index.html (start page) | 01:14 | |
| Coke: docs/html/parrotbug does not have an html extension | 01:15 | ||
| nopaste | "kid51" at 192.168.1.3 pasted "html_cleanup branch 'make html' fails to build all docs" (23 lines) at nopaste.snit.ch/21859 | ||
| kid51 | Coke: Yes I recall that ticket from years back. | 01:16 | |
| Coke | the html target has no dep, so when the dir gets created, it's done, and won't run again. you can use make -B html to force it. | 01:17 | |
| mikehh: yup, all the ones out there now are straight pod2html. | |||
| kid51 | Coke: Yes, but that only gets me back to the first failure message in paste 21859 | ||
| Coke | index.html requires stitching together. | 01:18 | |
| kid51 | k | ||
| Coke | kid51: probably accidentally depending on something that requires docs (even though we don't need to) checking... | ||
| mikehh | kid51: I did not get that at r48046 | ||
| Coke: can't we use the json stuff? | 01:19 | ||
| kid51 | mikehh: r48046 trunk 'make html' was fine; only in 'html_cleanup' branch did it fail | ||
| mikehh | kid51: didn't for me, but I only ran it after make corevm/make coretest, make world/make test | 01:20 | |
| kid51: I still got the tools/dev/mk_native_pbc generated no HTML output | 01:21 | ||
| kid51 | Hmm, I had assumed I could run it directly after Configure.pl | ||
| mikehh | kid51: the only things I find you can run straight after configure without a build are make manifest_tests and make codetest | 01:23 | |
| kid51 | Well, as I read Makefile, I don't see any target dependencies such as 'all' for 'html' and its brethren | ||
| mikehh | kid51: probably, but I have never tried | 01:24 | |
| kid51: or let me correct that, not recently anyway, IIRC there were some problems, but that was yonks ago | 01:25 | ||
| kid51 | So, after 'make' and 'make -B html' in branch, I get 226 .html files. In trunk there are 283. | 01:26 | |
| nopaste | "kid51" at 192.168.1.3 pasted "html_cleanup branch: 'make html' generates 226 .html files" (226 lines) at nopaste.snit.ch/21860 | 01:29 | |
| mikehh | kid51: confirm 226, but there is parrotbug in docs/html which is an html file with no extension | 01:31 | |
| kid51 | mikehh: Yes, perhaps there are more like that. | 01:32 | |
| Well, I'm glad Coke had the nerve to go deep into the make-html mine! | 01:33 | ||
| mikehh | kid51: I made various half-hearted attempts, but got scared off | 01:35 | |
|
01:35
davidfetter joined
|
|||
| Coke | kid51: fixed the packfile-c.pod issue. | 01:36 | |
| mikehh: what do you mean? we are using the json stuff. | |||
| kid51 | As I told Coke at YAPC (I think), I looked at that stuff 3 years ago ... and decided refactoring Configure.pl was easier! | ||
|
01:36
TiMBuS joined
|
|||
| kid51 | Note: At some point: "requires JSON.pm" has to go into the docs. | 01:36 | |
| kid51 did not have that installed on Linux box at first attempt of 'make html' | 01:37 | ||
| Coke | make html is intended to be run right aftet config, yes. just had an old dep on someething in in 'make docs', which I fixed. | ||
| kid51: it'll go into Task::Parrot. | 01:38 | ||
| kid51 | Thx | ||
| Coke | there are 0 byte pod files in the branch? checking... | 01:39 | |
|
01:39
plobsing joined
|
|||
| kid51 | r48047 html_cleanup branch: 226 files created; screen output cleaner; still get: tools/dev/mk_native_pbc generated no HTML output | 01:39 | |
| Coke | only 0-byte file in branch is the one we warn about. | 01:40 | |
| kid51 | I get no 0 byte .html files in branch | ||
| find . -type f -name '*.html' -size 0c | |||
| Coke | it's a shell script, I'm just going to not try to generate docs for it. | ||
| kid51 | k | ||
| dalek | rrot: r48047 | coke++ | branches/html_cleanup/docs/index/developer.json: use the original c file for pod source, not the pod file generated. |
01:41 | |
| Coke | looks like it's mk_native_pbc , not .html | ||
| cotto | ~~ | 01:43 | |
| Coke | kid51: I'm also going to remove Pod::Simple | 01:45 | |
| scratch that. | |||
| *thinking about. | |||
|
01:47
silug joined
|
|||
| mikehh | Coke: the book stuff is PseudoPod format - I know gerd++ has been working on that for .pdf, but there is Pod::PseudoPod::HTML | 01:50 | |
| Coke: I have never managed to get make pdf to work, but I don't think I've got all the LaTeX stuff loaded | 01:52 | ||
| Coke: you also want to make sure that anything you do does not mess up make pdf, whatever | 01:54 | ||
| Coke | mikehh: SFAIK, only one person ever touches make pdf. | ||
| he can fix it if I break it | |||
| mikehh | Coke: regarding json, we could use it to generate the index.html file | 01:55 | |
|
01:56
eternaleye joined
|
|||
| dalek | rrot: r48048 | coke++ | branches/html_cleanup/docs/index/tools.json: This file doesn't have any POD , don't bother trying to gen html from it. |
01:57 | |
| Coke | mikehh: oh, yes, that's the plan. =-) | ||
| each .json file corresonds to an .html file for us to generate. | 01:58 | ||
|
02:12
jimk joined
02:17
eternaleye joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34794), fulltest) at r48048 - Ubuntu 10.04 amd64 (g++) | 02:49 | |
|
02:55
tewk_ joined
03:06
janus joined
|
|||
| dalek | rrot: r48049 | tcurtis++ | branches/gsoc_past_optimization/t/library/pasttransformer.t: Rewrite PAST::Transformer tests in NQP with PAST::Pattern to make adding tests easier. |
03:19 | |
|
03:20
JaphMalik joined
|
|||
| ash_ | ping plobsing | 03:47 | |
|
03:48
Coke joined
|
|||
| dalek | rrot: r48050 | tcurtis++ | branches/gsoc_past_optimization (2 files): Add tests for PAST::Transformer transforming PAST::Var.viviself and .vivibase, and implement it. |
03:52 | |
| parrot: 05e5684 | dukeleto++ | html/docs.html: Add another link to the docs page |
03:54 | ||
|
04:03
silug joined
05:25
PerlPilot joined
06:00
NotFound joined
06:34
uniejo joined
07:39
fperrad joined
08:55
clinton joined
09:01
rurban_ joined
10:39
JimmyZ joined
10:41
bkuhn joined
11:38
lucian joined
12:14
szabgab joined
12:21
szabgab joined
|
|||
| dalek | rrot: r48051 | gerd++ | trunk (2 files): add a news and update the editor documentation a bit |
12:37 | |
|
12:47
AzureStone joined
12:50
ruoso joined
|
|||
| moritz | I've started an unofficial #yapc-eu channel on this server | 13:01 | |
| dalek | rrot: r48052 | gerd++ | trunk/editor/README.pod: I don't use kde and kate, only find some information on the internet. |
13:26 | |
|
13:35
tcurtis joined
|
|||
| dalek | rrot: r48053 | fperrad++ | trunk/t/library/pcre.t: [t] test TODOed on Windows |
13:43 | |
| kudo: e597953 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 507 files, 33910 (84.4% of 40163) pass, 0 fail |
13:48 | ||
|
13:51
Mokurai joined
14:00
bubaflub joined
14:08
gbacon joined
|
|||
| dalek | rrot: r48054 | gerd++ | trunk/config/gen/platform/generic/env.c: add patch from TT #1140 |
14:32 | |
|
14:47
ash_ joined
15:15
clinton joined
15:34
Maddingue joined
15:36
hercynium joined
|
|||
| dalek | rrot: r48055 | tcurtis++ | failed to fetch changeset: Merge trunk. |
15:55 | |
|
16:05
skv joined
16:07
theory joined
16:26
ash_ joined
16:33
ilbot2 joined
|
|||
| moderator | Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: review experimental features for promotion or removal, fix 'make html', pre-release testing. | ||
| Coke points at rt.perl.org/rt3/Ticket/Display.html?id=76416. | 16:40 | ||
| would be nice to figure out if that is us or rakudo. | |||
| (and fix it.) | |||
| moritz | it seems that rakudo leaks again on very simple loops | 16:42 | |
| tcurtis | Any git-knowledgable people have any suggestions on how to extract part of a svn repo to a git repo? Other than importing the whole repo and deleting all the stuff that is unneeded? | 16:44 | |
| moritz | tcurtis: you can git-svn clone $repo_url/some/path (but you probably won't get branches) | ||
| cotto_work | ~~ | 16:46 | |
| darbelo | allison: ping. | 16:48 | |
|
16:49
NotFound joined
|
|||
| tcurtis | moritz: any way of doing similar when the parts you need of the svn aren't all in the same directory(other than the root)? | 16:49 | |
| moritz | tcurtis: none that I'm aware of | 16:50 | |
| tcurtis | moritz: I didn't think there would be. Thanks, though. | ||
| particle | what's the newish svn functionality called that lets you get slices (perl term) of the repo? | ||
| moritz | particle: svn has that from the auld days, git has sub-repositories... don't know which one you mean | 16:51 | |
| particle | eh, that probably wouldn't help anyway, i don't think you can get history that way | ||
| i mean, i can checkout/update <root>/abc and <root>/def/ghi only | 16:52 | ||
| it's 1.6 iirc | |||
| anyway, the folks at irc.freenode.net#git are very helpful | |||
| i have in the past used this svn feature to sync only the src/perl6 and t/spec directories from pugs | 16:53 | ||
| moritz create a 'git svn clone svn.pugscode.org/pugs/t/spec' mirror | |||
| particle | ah, sparse checkouts: svnbook.red-bean.com/nightly/en/svn...edirs.html | 16:54 | |
| new in svn 1.5 | |||
| moritz | huh | ||
| particle | yeah, pretty cool feature | 16:55 | |
|
17:00
fperrad joined
|
|||
| darbelo | Heh. Looks like we have 6 different platform specific definitions for a function we never use :) | 17:00 | |
|
17:00
bluescreen joined
|
|||
| particle | we strive for portability | 17:01 | |
| NotFound | darbelo: We should patent that! | ||
|
17:01
rurban_ joined
|
|||
| darbelo | No, wait it's two functions. Parrot_signbit and Parrot_signbit_l | 17:01 | |
| cotto_work autographs a bit and hands it to darbelo | 17:03 | ||
| NotFound plays Supertramp 'Give a little bit' | |||
| darbelo: looks like its usage is hidden inside macros | 17:06 | ||
| darbelo | No wait, one of them *is* used. signbit() get's defined to one of them. | ||
| ans signbit() shows up in Parrot_is_nzero() which does get called. | 17:07 | ||
|
17:41
s1n left
|
|||
| mikehh needs to reboot - brb | 18:08 | ||
|
18:11
fperrad joined
18:19
LoganLK joined
18:21
silug joined
18:30
fperrad joined
|
|||
| dalek | tracwiki: v64 | cotto++ | ParrotQuotes | 18:38 | |
| tracwiki: we strive for portability | |||
| tracwiki: trac.parrot.org/parrot/wiki/ParrotQ...ction=diff | |||
|
18:43
bubaflub joined
18:49
fperrad joined
19:02
baest joined
|
|||
| moritz | how do I get a caller's outer lexpad? | 19:11 | |
| NotFound | ' "Closures are anonymous methods, packaged in such a way that they can be passed as parameters to other methods." - this is like describing a porsche by stating it generally has 4 wheels' | ||
| moritz | NotFound: right | 19:12 | |
|
19:13
fperrad joined
|
|||
| NotFound | moritz: It's a comment in slashdot. | 19:13 | |
| cotto_work | That's what you get for reading slashdot comments. | ||
| darbelo | That's what you get for reading slashdot. | 19:14 | |
| sorear | it's also wrong, but I stopped fighting that battle years ago | ||
| darbelo | Yeah. Porsche makes motorcycles too. | ||
| NotFound | cotto_work: Don't have a Porsche but my car has 5 wheels. | 19:15 | |
| cotto_work | Something wrong? On the Internet? | ||
| moritz | I know that with interp['lexpad';1] I get the caller's lexpad | ||
| and with interp['outer';'lexpad';1] I get the outer lexpad | |||
| but how do I get the caller's outer pad? | 19:16 | ||
| atrodo | cotto_work> xkcd.com/386/ | ||
| cotto_work | just what I was thinking of | ||
| atrodo | I figured. But still, I love xkcd | ||
| cotto_work | xkcd++ | 19:17 | |
| atrodo | xkcd++ | ||
| sorear | allison++ | ||
| cotto_work | I have the "Map of the Internet" poster outside my office and it *still* catches people every other week or so. | ||
|
19:18
mikehh joined
|
|||
| Coke | do any of the primarily-perl6 folks that hang out in this channel ever feel like there's an anti-perl6 sentiment here? | 19:21 | |
| cotto_work | allison, if "dynamic vtables" in your parrot-dev post refers to the Piumarta and Warth paper, you might want to link to it for anyone who hasn't read it. | 19:22 | |
| Tene | Coke: I don't knwo if I fall into the named category, but I've never noticed such sentiment. | 19:23 | |
| Coke | k. I feel an undercurrent of the reverse there (anti-parrot from #perl6). wondering if it is symetrical, or perhaps if it's just me. | 19:24 | |
| (having just chimed in on a thread about how easy it is to misread people online...) | 19:25 | ||
| Tene | I've never noticed that either, so maybe I'm just insufficiently observant. | ||
| NotFound | Coke: I'm anti-anti | ||
| atrodo | cotto_work> you're the lorito task master, right? | 19:27 | |
| cotto_work | allison, also, why have a separate isgt and islt? If we're going for minimalism it seems redundant. | ||
| atrodo: yup | |||
| NotFound | Unless someone creates a language called "anti", 'course. | ||
| Tene | allison: instead of read/write stdin/stdout, can that just be read/write a fh? | 19:28 | |
| atrodo | I had some ideas about Lorito lately, and wanted to see how insane/sane someone with a bit more experience than me thought they were | ||
| but I also wanted to see what allison had to say | |||
| cotto_work | . o 0 (Perhaps I should be keeping these comments in the thread.) | ||
| allison | Tene: it could be a fh, but that's a heavy amount of bootstrapping before you can start to test that it's working | 19:29 | |
| Tene: so, even if read/write as stdin/stdout don't make it into the final implementation, really want it in the initial implementation | |||
| Tene | 'k, I guess I'm fine with that. | 19:30 | |
| Coke | if you're looking for completely minimalism, you could kill mul and goto Label, too. | ||
| I'm wondering if not is needed. | |||
| ash_ | couldn't you do read/write with fh's and have a special thing for easily retrieving stdin/out/err? | 19:31 | |
| cotto_work | Coke, me too | ||
| Coke | ash_: well, we're trying to reduce the special things here. | ||
| allison | ash: aye, but at first we won't even have PMCs, which are kind of necessary for filehandles | ||
| NotFound | For absolutely minimalism, "exit" is enough X-) | ||
| cotto_work | Mu | 19:32 | |
| Coke | NotFound: *thbbbthp* | ||
| Tene | ash_: by fh, I mean actual fh numbers. I'd expect that user-level IO will be done by methods or whatever, but this microcode is for writing the PMCs in, and you need a way to get to the read and write system calls eventually. | ||
| ash_ | Coke, allison: yeah, i see your point(s?) | ||
| Coke | NotFound: I am reminded of early, very promising speed trials comparing partcl to tclsh... until I realized i was segfaulting parrot, which was really fast! | ||
| NotFound | Next step will be "exit" and "hcf" | ||
| Tene | So this is the opcode that would be used in the 'read' method of the IO pmc, or whatever. | ||
| allison | cotto: aye, but trying to avoid perl6-isms too | ||
| atrodo | Really "subleq" is all you need | ||
| Coke hopes no one suggests resurrecting the "DWIM" opcode. | 19:33 | ||
| atrodo | Tene> windows? | ||
| NotFound | All you need is subleq! Ta-da-da-da-daaaa. | ||
| Coke | allison: +1 on killing strings vs. Strings. | ||
| NotFound: ... I will Beat(le) you. | |||
| Tene | I... actually don't know how windows does read/write. I assumed it was the same. I guess that might be silly. | ||
| allison | Tene: yah, platform portability, as atrodo said (going for generic abstractions where possible) | ||
| NotFound | Sorry, I'm still under the effect of yesterdays football match X-) | 19:34 | |
| allison | Tene: but, you're absolutely right, it is effectively just the low-level fh's in *nix | ||
| cotto_work | NotFound: I wish I could hang out in Spain during that partying. | ||
| allison | Tene: which probably means we should have 'error' too | ||
| Tene | bleh... I don't like that much... okay. | 19:35 | |
| NotFound | cotto_work: you're welcome | ||
| Tene | I'll avoid grumping without patches. :) | ||
| moritz | uhm... what happened to calling stuff? | ||
| Coke | allison: if you give me error, I'll want catch. | ||
| moritz: see "call" | |||
| atrodo | allison> I like the raw block of memory idea, but what about pointers to other blocks? | 19:36 | |
| moritz | ah | ||
| Coke: thanks | |||
| allison | atrodo: PMCs are just pointers | ||
| Coke | I will be amused if the first VM for this is written in PIR. | ||
| since, you know, we have that lying around. | |||
| moritz | :-) | ||
| allison | Coke: heh :) | 19:37 | |
| cotto_work | allison, I'll repsond inline to your post. it's too easy to lose the thread in here. | ||
| Coke | also horrified, btw. just to be clear. | ||
| atrodo | allison> but do you really want to expose the real pointers as integers inside of a VM? | ||
| allison | atrodo: not as integers, no | ||
| atrodo: there are too many platform portability problems with that | |||
| atrodo | But if you can manipulate the block of memory as a whole directly, where does that leave the pointers? | 19:38 | |
| Coke | allison: is there a reason for making setattr/getattr "native" instead of doing them via method calls? | ||
| allison | atrodo: but, you do need the ability to store a pointer to a PMC as the attribute of a PMC | ||
| cotto_work | allison: for the record, were you referring to the Piumarta and Warth paper when you mentioned "dynamic vtables"? | ||
| allison | Coke: no, not really, they could just be handled by 'call' | ||
| Coke: and really better that way, no hard coding of the behaviour | 19:39 | ||
| Coke | just wondering if speed was a concern there. | ||
| (or something) | |||
| atrodo | allison> So are the attributes different than the allocated block of memory? | ||
| allison | cotto: in a general way yes, but more specifically we've been talking for ages about the bloat of a fixed vtable, and how much better it would be to only store the vtable entries the PMC actually uses | 19:40 | |
| Coke: yes, speed was what prompted me to add them, and also thinking of attribute access as the replacement for direct low-level memory access | 19:41 | ||
| moritz | allison: re "PMC" vs. "object", I like "PMC" because it means it's easy to linguistically distinguish parrot objects from HLL objects | ||
| Coke | at which point, they're just, what, hidden methods? | ||
| allison | moritz: ah, but that's the key to Lorito, there is no distinction between the two | 19:42 | |
| Coke | POC - Parrot Object Container. ;) | ||
| cotto_work | It's pretty cool. vtables have a vtable | 19:43 | |
| Coke | is there any reason to keep a dstinction between method & vtable in this model? | 19:44 | |
| allison | Coke: I was thinking of them more like C's direct struct access, just raw offset in the memory. but methods are much safer (if we can make them fast, and I think we can) | ||
| tcurtis | cotto_work: link to this dynamic vtables paper, please? | ||
| Coke | (fast methods) one certainly hopes so ;) | ||
| allison | Coke: only to the extent that a "method" is an invokable PMC, while a vtable is a function pointer | ||
| cotto_work | tcurtis: tinyurl.com/22owv6r | ||
| allison | Coke: that is, it has more to do with calling conventions than anything else | 19:45 | |
| Coke | allison: but if you override a vtable, you use an invokable PMC, neh? and if you want to handroll a method, you could potentially use a function pointer? | ||
| allison | Coke: yes, and so we could call them all methods | ||
| Coke: and we could even unify the calling conventions (maybe even should) | 19:46 | ||
| Coke | (have to jump through hoops to override a vtable today) be nice if there was just a marker to say "this is internal use only" vs "this is an HLL-visible method' | ||
| allison | Coke: if we can make it so that simple dispatch is fast, and you only pay the cost of the more complex dynamic dispatch features when you use them, we'll be ahead there | ||
| ash_ | that paper sounds like objective-c's class implementation | 19:48 | |
| darbelo | msg tcurtis dukeleto and me are also plumage committers, we can add your plumage metadata once it's ready. | ||
| purl | Message for tcurtis stored. | ||
| allison | Coke: and really, when you get down to it, we're talking about making everything implemented in the microcode (ops, pmcs, etc). if vtables and methods are both implemented in mirocode, then there's really no distintion | ||
| atrodo | What if you wanted to, in the case of embedders, call a function that's really a native function? | 19:49 | |
| japhb | <rez> | ||
| tcurtis | allison: is potentially unsafe ops at the lowest level as much of a problem if we plan for most things to not use the unsafe ops directly? | 19:50 | |
| japhb | tcurtis, darbelo: And of course anytime someone says 'plumage', I get highlighted, so you can get my attention that way -- or just send me email. | ||
| tcurtis | s/is/are/ | ||
| atrodo | I will now make it a point to randomly say "plumage!" in the middle of the day | ||
| japhb | I knew someone was going to say that. :-) | 19:51 | |
| allison | atrodo: I made an implicit assumption there that 'load' would be both bytecode and C libraries, with some additional NCI plumbing for C libraries | ||
| atrodo | allison> makes sense | 19:52 | |
| ash_ | objective-c has a pretty solid (and fast) class system setup, if you want to look for inspiration for an open class implementation that is extendable at runtime | 19:53 | |
| tcurtis | atrodo: Don't abuse our benefactors. | 19:54 | |
| allison | tcurtis: yes, it depends to a certain extent on how much me expose of the lowest level of microcode to the higher levels. It also partly depends on the composition model of the higher levels. As in: implementing 'new' or attribute access in terms of opcodes like 'alloc' and direct memory peeking is really cumbersome. | ||
| atrodo | tcurtis> okay, i'll try and limit myself to once a week | 19:55 | |
|
19:55
eternaleye joined
|
|||
| ash_ | opensource.apple.com/source/objc4/o...time-new.h has the class structures used by objc, it's MOP is really close to parrots, except you can only have 1 parent, (protocols are roles though) | 19:57 | |
| allison | tcurtis: It also doesn't lend itself to swapping out GC models. But then, it may make the most sense to provide both "managed" memory through 'new' and attribute access, as well as "unmanaged" memory for things like optimized integer arrays that want direct manipulation. | ||
|
19:58
fperrad joined
|
|||
| allison | ash: there's a reason for the similarity, it was one of our references in the revised Parrot MOP :) | 19:58 | |
| atrodo | So, if I was making this test proposed lorito, I'd need an assembler of minimal sorts, a core that runs these 20 ops, and a loader to bring it in memory | 19:59 | |
| ash_ | allison: got ya | ||
| allison | ash: also Moose, and Sam Vilain's SMOP, among other things | ||
| atrodo | errr, a loader to take an assembled file into memory to run | ||
| allison | Coke: I wasn't thinking of 'error' as an exception, but simply as writing to stderr, but probably needs a better name | 20:00 | |
| darbelo | 'complain'? | 20:01 | |
| allison | Coke: and 'not' is a good idea | ||
| darbelo: aye, something like that | |||
| atrodo: yup, that's it | 20:03 | ||
| atrodo | allison> My weekend might just be shot... | 20:04 | |
| allison | atrodo: :) | ||
| darbelo | allison: I also have a gsoc issue I wanted to run by you. | ||
| allison | darbelo: sure | ||
| dalek | kudo: 1971474 | moritz++ | lib/Safe.pm: [Safe.pm] remove non-functional code |
20:05 | |
| darbelo | I think I've found a cleaner way to solve the NFG transcoding issues without having to make all other encoding grapheme aware. | ||
| NotFound | darbelo: "cry" | 20:06 | |
| cotto_work | 'gripe' | ||
| allison | darbelo: what's that? | ||
| darbelo | I found the solution in the PDD, amusingly. It claims parrot will offer 'grapheme and codepoint'-level interfaces to strings. | ||
| We don't. So we end up conflating graphemes and codepoints in a few places. | 20:07 | ||
| Coke | allison: printerr is fine. | ||
| Tene | allison: I'd like to see explicit mention that this is a bootstrapping set of opcodes, and see a list of what the changes for the final set of opcodes will be. | 20:08 | |
| If that's really the plan. | |||
| Coke | but is that really necessary? | ||
| darbelo | I'm thinking of adding 'codepoint iterators' that decompose graphemes on the fly. | ||
| NotFound | darbelo: I think we already have codepoint iterators. | 20:09 | |
| atrodo | Isn't the idea that these 20 or so ops are composed to create all other ops and pmcs? | ||
| darbelo | NotFound: Sort of, we have one kind of iterator, that doesn't make the grapheme-codepoint distinction. | 20:10 | |
| NotFound | darbelo: as long as all we have now are codepoints, they are codepoint iterators. | ||
| darbelo | Which makes sense, since the distinction is irrelevant outside of NFG. | ||
| tcurtis | atrodo: These are just a bootstrapping set to be able to get a prototype implemented quickly so that we can actually try our plans out, if I understand what allison said at #ps yesterday correctly. | 20:11 | |
| darbelo | NotFound: In my branch, "all we have now are codepoints" has become false :) | ||
| moritz | darbelo++ | 20:12 | |
| darbelo | It's just that, most of the time, graphemes look very much like codepoints ;) | ||
| NotFound | darbelo: yeah, but IMO is better to leave existing iterators as they are rather than rewriting them to be a different thing and then creatring new ones to do what the older do in the beginning X-) | 20:13 | |
| darbelo | NotFound: In non-nfg strings, you won't be able to tell the difference. | 20:14 | |
| And getting a grapheme is the right thing when iterating a NFG-encoded string. | |||
| ash_ | in pbc_to_exe, has anyone ever thought about expanding the runloop? | 20:15 | |
| darbelo | I just need a way to iterate over the codepoints of a NFG-encoded string. | ||
| NotFound | darbelo: that depends of the meaning of string_length. If string_length gives codepoint length but iterators uses grpaheme length we'll have not amusing confusions. | 20:18 | |
| You won't be able to tell the difference... until it explodes. | 20:19 | ||
| darbelo | NotFound: If you keep on doing stuff as you are doing it now, it'll just work and not explode. | 20:21 | |
| ... if it doesn't explode already :) | 20:22 | ||
| NotFound | Sure, I usually don't write serbo-croatian X-) | 20:23 | |
| ash_ | allison: taking some inspiration from llvm-ir, instead of a getattr and setattr, you could just use pseudo-code "R0 = someobject; R1 = getattr R0, 'name'; set R1, 'new_val'; and do away with setattr, but its pretty nice to have setattr... | 20:25 | |
| allison | ash: aye, there's a balance between minimimalism and circumlocution, sometimes a simplification is possible, but just makes writing other code cumbersome | 20:26 | |
| ash_ | the llvm-ir calls that 'getelementptr' for grabbing a pointer to any offset of a pointer/struct/etc. | ||
| dalek | kudo: c80319f | moritz++ | src/Perl6/ (2 files): add FORBID_PIR pseudo package which disallows Q:PIR { } and pir::stuff |
20:28 | |
| allison | ash: it doesn't work as well in our case, too, since the attribute may be an integer rather than an object | ||
| ash: but I'm leaning toward Coke's suggestion, where both setattr and getattr go away, to be replaced by vtable functions/methods on the PMC | 20:29 | ||
| darbelo | allison: Anyway, does it make sense to you to have a flag on iterators (or a variant iterator maybe) that does codepoint iteration over NFG strings. | ||
| allison | darbelo: sorry, I was waiting for your question, then got pulled away. I'll backscroll. | ||
| darbelo | I'm leaning towards passing an extra param to iter_init() right now. | 20:30 | |
| tcurtis | allison: if [set|get]attr are method/vtable calls, how does the PMC implement the relevant vtable/method? | 20:31 | |
| darbelo | tcurtis: Magic! | 20:32 | |
| Or intimate knowledge of it's own internals. | |||
| It amounts to the same thing really. | |||
| allison | darbelo: yes, we need ways to interface with strings by graphemes and by codepoints, but we'll have to be very careful about a) what we make the default, and b) where we expose only one way and where we expose both | ||
|
20:33
bubaflub joined
|
|||
| allison | darbelo: I'd be inclined to say the current interfaces should continue to operate by codepoints where necessary, and by graphemes where possible | 20:33 | |
| darbelo: and then add new interfaces specific to grapheme behavior | 20:34 | ||
|
20:34
silug joined
|
|||
| allison | tcurtis: all methods/vtables are implemented in (low or high-level) opcodes | 20:35 | |
| tcurtis: because all PMCs and ops (except for the lowest level of the microcode) are implemented in opcodes | |||
| tcurtis: but, will had some declarative syntax for some aspects of classes | 20:36 | ||
| tcurtis | allison: ah. And the attribute accessors will be generated from that? | ||
| ash_ | is there any need (at the lorito level) for making a closure? or cloning objects? | ||
| allison | ash: closures are just a kind of sub object, the same as now (with a reference to the relevant captured lexical scope) | 20:37 | |
| ash_ | or lexical/dynamic variable lookup? (just wondering, those seem like complicated things that might be hard to explain in lorito) | ||
| allison | ash: cloning currently is a vtable function, don't see any need to change that | 20:38 | |
| NotFound | allison: BTW have you looked at TT #1702? | ||
| allison | ash: variable access is an interpreter issue, i.e. you grab the relevant data structure from the relevant location and access attributes on it | 20:39 | |
| ash_ | just thinking of complicated things that might be worth being low level, thats all | ||
| allison | ash: yah, it's a matter of making sure it's possible to implement the complex features in terms of the simple low-level features | 20:40 | |
| ash: for lexicals, they're stored in a data structure that's stored in the callcontext of the current executing subroutine (and in a chain linking backward from that data structure) | 20:41 | ||
| ash: so we'll need to provide a way to access "the current executing sub" and "the current interpreter" | |||
| ash: or really, just "the current interpreter" since the rest is linked from there | 20:42 | ||
| particle | no 'print' in the 20 opcodes? | 20:43 | |
| darbelo | particle: see write. | ||
| particle | oh, 'write'. | ||
| ash_ | it had access to stdout | ||
| moritz | write (write a register to stdout, absolute minimum for testing) | ||
| particle | i'm scanning while on a concall, sorry | ||
| allison | NotFound: I have (on TT #1702), or at least a nearly identical bug that was reported several months ago | ||
| cotto_work | tcurtis: I was too quick with that link. I meant to link to tinyurl.com/23dfwut | 20:44 | |
| particle | so, exceptions will be based on goto? | ||
| allison | particle: exceptions are based on subroutines | ||
| particle | phew | ||
| tcurtis | Oh my. Does "git svn clone" really clone the entire history of the repository? | ||
| NotFound | allison: yes, but I wonder what is the intended solution. Just an example in the pdd isn't very normative. | ||
| ash_ | tcurtis: yes, but you can limit that | 20:45 | |
| Tene | tcurtis: use -r to specify the revision to start from | ||
| tcurtis | Tene: thanks. | ||
| ash_ | would lorito need any ability to box/unbox or type convert? | 20:46 | |
| or would that be delegated to a PMC | |||
| for the most part | |||
| allison | NotFound: this is one of those "not yet specified" cases, but having it restart from the beginning of the subroutine after it's "returned" seems far more useful than Coroutines that can be used only once in the whole running of the virtual machine, so let's go with that | 20:47 | |
| ash_ | also, i see call but is there a way to return? /me okay done with annoying questions | ||
| Coke | return is call. hah! | ||
| ash_ | lol | ||
| allison | Coke is right :) | ||
| NotFound | allison: in fact they can be used several times, you just need to use clones. | 20:48 | |
| ash_ | call 'return' | ||
| cotto_work | so tailcall is just a call that doesn't do a call back | ||
| allison | NotFound: yes, but that seems like a silly workaround. I could accept the argument that there should be a way to mark it as dead | ||
| cotto_work | s/call back/return call/ | 20:49 | |
| allison | NotFound: or, dead by default and a way to mark it as live | ||
| NotFound: but requiring a clone seems wasteful | |||
| NotFound | allison: my point is that the argument that the caller shouldn't care isn't true, that works only if it takes no args. | ||
| allison | NotFound: yes, that is very true | 20:50 | |
| NotFound: perhaps we should have a :restart option passed in the call? | |||
| NotFound: we might even make it work when the coroutine isn't dead yet | 20:51 | ||
| NotFound | A method, maybe. | 20:52 | |
| tcurtis | Tene: so, if I wanted every revision beginning at 46812, what would I do? | ||
| allison | NotFound: or an optional named argument 'restart'=>1 | ||
| Tene | tcurtis: trac.parrot.org/parrot/wiki/git-svn-tutorial | 20:53 | |
| NotFound | allison: I don't think we should add more load to pcc for a particular case, unless that particular case is very frequent and speed critical. | 20:54 | |
| allison | NotFound: that's against the :restart option? agreed | 20:55 | |
| NotFound | allison: yes | ||
| allison | NotFound: especially since it's a custom option to one particular PMC | ||
| NotFound: but, having that PMC intercept arguments passed to it in the call is pretty reasonable | 20:56 | ||
| NotFound: calling a separate method is also reasonable | 20:57 | ||
| NotFound | I don't think is an urgent problem, I just care because there is a todo'ed test since long time wich needs a design decision in order to be fixed, and that ticket reminded me of it. | 20:58 | |
| tcurtis | Tene: thanks. That works. | ||
| allison | NotFound: I can record the decision in the ticket | 20:59 | |
| NotFound | No urgent, anyway. | ||
| allison | NotFound: that removes the roadblock, so someone can work on it when inclined | ||
| NotFound | BTW the posibilty of using a clone of a coroutine is useful, as a extremely simple functor. | 21:03 | |
|
21:37
lucian_ joined
|
|||
| atrodo | github.com/atrodo/lorito # My weekend is shot | 21:38 | |
| cotto_work | nice to see that gripe made it | 21:40 | |
| time for some cloninating | 21:41 | ||
| GeJ | Bonjour everyone. | 21:42 | |
| dalek | rrot: r48056 | mikehh++ | trunk/t/library/pcre.t: perlcritic does not like - Variable declared in conditional statement |
||
| cotto_work | kinda stubby | 21:43 | |
| way to develop in the open though | |||
| atrodo++ | |||
| atrodo | Hey, if it | 21:46 | |
| 's one thing I'm good at, it's stubs! | 21:47 | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34804), fulltest) at r48056 - Ubuntu 10.04 amd64 (gcc with --optimize) | 21:59 | |
|
22:04
ash_ joined
|
|||
| dalek | rrot: r48057 | mikehh++ | trunk/editor/README.pod: correct typo, remove TODO as I did a bit of testing, |
22:32 | |
| nxed: r539 | NotFound++ | trunk/winxedst1.winxed: a bit of refactoring to avoid repeated code |
22:51 | ||
| cotto_work | piumarta and warth? | 23:12 | |
| piumarta and warth is tinyurl.com/23dfwut | 23:13 | ||
| p&w is tinyurl.com/23dfwut | |||
| p&w? | |||
| purl | p&w is tinyurl.com/23dfwut | ||
|
23:15
kid51 joined
|
|||
| nopaste | "kid51" at 192.168.1.3 pasted "html_cleanup branch: 'make html' fails due to 'malformed JSON string'" (4 lines) at nopaste.snit.ch/21896 | 23:18 | |
| kid51 | let's try that paste agian | 23:19 | |
| s/agian/again/ | |||
| nopaste | "kid51" at 192.168.1.3 pasted "html_cleanup branch: 'make html' fails due to 'malformed JSON string'" (7 lines) at nopaste.snit.ch/21897 | ||
| kid51 | That's better | ||
|
23:39
nopaste joined
23:45
ruoso joined
23:55
Psyche^ joined
|
|||
| Coke | kid51: fixed, thanks. | 23:55 | |