|
Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 29 September 2011. |
|||
| cotto | colinm.org/language_checklist.html | 00:01 | |
| dukeleto | hilarious | 00:17 | |
| Util | Excellent | 00:18 | |
| Patterner | +1 | 00:22 | |
| dukeleto | Useful slides about having a "hack day" www.slideshare.net/cheilmann/innova...h-hackdays | 00:23 | |
|
00:59
l3l1p joined
01:00
l3l1p joined
01:25
bluescreen joined
|
|||
| dalek | rrot: f3a9b26 | jkeenan++ | src/ (2 files): [codingstd] Trim lines to meet standard (without simultaneously causing failures in c_parens.t). |
01:44 | |
|
01:48
benabik joined
02:37
alvis_ joined
02:38
bubaflub joined
03:26
davidfetter joined
03:47
rfw joined
|
|||
| dalek | rrot: 353b6ac | petdance++ | src/pmc/nativepccmethod.pmc: consting local arguments |
04:21 | |
| rrot: 77f8586 | petdance++ | src/hash.c: removed unused comparison functions |
|||
|
04:30
benabik joined
|
|||
| dalek | rrot: 75ac424 | petdance++ | src/packfile/api.c: removed two unused fucntions |
05:33 | |
|
06:05
SHODAN joined
06:17
contingencyplan joined
06:57
baest joined
06:58
SHODAN joined
07:03
baest joined
07:29
lateau__ joined
07:40
nbrown joined
08:06
alin joined
08:14
lucian joined
09:08
PacoLinux_ joined
09:33
schmooster joined
10:20
lucian joined
10:22
not_gerd joined
|
|||
| not_gerd | hello, #parrot | 10:22 | |
|
10:34
alin joined
|
|||
| dalek | pir: c7b4f83 | fperrad++ | setup.pir: (no commit message) |
10:34 | |
|
10:40
azawawi joined
10:42
alvis_ joined
11:36
azawawi left
11:37
Psyche^ joined
12:04
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:04 | |
|
12:07
not_gerd joined
12:46
pjcj joined
13:10
bubaflub joined
13:15
AzureSto_ joined
13:28
benabik joined
|
|||
| benabik | o/ #parrot | 13:29 | |
| whiteknight | hello benabik | 13:38 | |
| benabik | Hey whiteknight! How's things? | 13:40 | |
|
13:40
nbrown joined
|
|||
| whiteknight | pretty good benabik, you? | 13:45 | |
| benabik | Getting frustrated at my (lack of) thesis, but otherwise good. | ||
| not_gerd | fyi, links to both Dan's 'Parrot post-mortem' and whiteknight's 'Smoke Clears' blog postings turned up in a HN discussion on Dart ( news.ycombinator.com/item?id=3098435 , subthread news.ycombinator.com/item?id=3098670 ) | 14:06 | |
| whiteknight | that post-mortem blog from Dan is always amazingly insightful. I've read it a few times now | 14:27 | |
| dukeleto | ~~ | 14:28 | |
| whiteknight | so many of the comments to that post are even more insightful than the post itself | 14:31 | |
| Coke | is that the one where he ... I'm trying to think of a polite way to say this. | 14:32 | |
| ... where he basically said "this is why I'm not working on parrot anymore" ? | |||
| moritz | the one where he wrote that leo had f*cked up parrot, basically | 14:33 | |
| dukeleto | blarg | ||
| moritz can't comment on any of that, it was way before my involvement with parrot or perl 6 | 14:34 | ||
| dukeleto | parrot development feels like it has slowed down lately | ||
| Coke | dukeleto: haven't seen many commit messages, if that's how you're counting, no. | 14:37 | |
| I personally have been focusing on various perl6 implementations spectesting, and trying to get the rakudo ticket queue back down to a manageable size. | |||
| (how the hell do I keep ending up on ticket duty? Must be secretly rewarding or something. :P) | 14:38 | ||
| I need to get back to muddle. | |||
| I had the very basics working. You can upload data, it gets parsed, and you can see the re-gen'd TAP. | |||
|
14:39
dmalcolm joined
|
|||
| benabik wants more time to work on PACT or lexicals, but doesn't have the time. | 14:40 | ||
|
14:44
nopaste joined
|
|||
| not_gerd | what's the status of migrating 6model into Parrot? | 14:44 | |
| whiteknight | not_gerd: no status. I had started with a copy+paste migration, but have been rethinking that | 14:48 | |
| if there is interest, we can continue down that path and see where it leadsd us | 14:49 | ||
|
14:50
logie joined
|
|||
| not_gerd | whiteknight: what are the reasons for not going ahaed with the c+p migration? | 15:03 | |
| waiting for m0? | |||
| dukeleto | not_gerd: c+p migration? | 15:08 | |
| cotto: ping | |||
| not_gerd | dukeleto: copy+paste | ||
| dukeleto | not_gerd: ah | 15:10 | |
| cotto: i like github.com/parrot/parrot/wiki/CPU-...Comparison , but i feel like it needs a tiny bit more instructions for people to help fill it out | 15:11 | ||
| whiteknight | not_gerd: I was moving forward with it pretty blindly, but I started to think that maybe just dumping the code in place might not be as good as rewriting it from the ground up to be properly integrated | 15:12 | |
| not_gerd: 6model really wants to have some major changes to the vtable structure and the opcodes, and doing that in a naive way could get ugly | |||
| dukeleto | i am surprised that the thread about converting to a github wiki didn't get more responses | ||
| I will take that as a "yes, let's use a github wiki already" | 15:13 | ||
| because I frakking hate the trac wiki | |||
| benabik | I'm not a huge fan of trace in general. | ||
| whiteknight | dukeleto: I'm ambivalent. I like the idea, but I don't want to do a bunch of work for it. I support it if other people want to do it | ||
| benabik | *trac (stoopid autocorrect) | ||
| dukeleto | benabik: yeah, me neither. But converting ticket systems is a nightmare | ||
| benabik | dukeleto: I'll believe it. | ||
| whiteknight | I don't like trac at all either. I would be perfectly happy migrating the whole shebang to github | ||
| dukeleto | whiteknight: you aren't allowed to do wiki migrations. | 15:14 | |
| whiteknight | what I like about the github wiki is that you can download it as a git repo and edit it locally using your favorite editor | ||
| dukeleto | but also, a large part of our trac wiki is old and wrong and confusing and stupid and actively hampers new developers getting on board | ||
| whiteknight | so that's neat | ||
| dukeleto | and that is bad news bears | ||
| whiteknight: yes, the fact that you can use and edit the wiki without a net connection is *huge* | |||
| whiteknight: i see the wiki migration as a good task for people wanting to get involved with parrot. They will learn a good cross-section of stuff | 15:15 | ||
| whiteknight | If I had my way, I would move everything to github and get off OSL entirely | ||
| dukeleto | the OSL infrastructure isn't looking too good these days | ||
| whiteknight | the parrot.org website could be moved to the github pages | ||
| dukeleto | whiteknight: i am all for it. I frakking hate drupal | 15:16 | |
| whiteknight | it's not that it's not good. OSL is awesome. It's more indepth than we really need and requires more input from us than we should have to spend on it | ||
| maintaining drupal is a hassle, and we don't get anything from it | |||
| dukeleto is filling with lots of frakking hate for stuff this morning | |||
| whiteknight | we basically use it as a very complicated way to post release announcements | ||
| If we go the github route, everybody with a github account already has a blog waiting to be used, everything is git, etc | 15:17 | ||
| dukeleto | OSL is awesome, but they are amazingly understaffed and I am not sure how much longer they will be able to host all the projects they currently host | ||
| whiteknight | I don't have any reason to suspect they are under staffed or unmaintainable | 15:18 | |
| benabik | I do try to use parrot.org to post about my parrot work. | ||
| not_gerd | whiteknight: I don't know if there's much value in properly 6model-izing the PMC infrastructure so you only have to do it again once m0 lands | 15:23 | |
| (assuming m0 gains some traction and not become vaporware) | |||
| whiteknight | not_gerd: We want 6model as soon as possible because of the features and performance benefits it brings | ||
| plus, getting the shape of the architecture in place before M0 comes is good so we know what M0 needs to support at the outset | 15:24 | ||
| if we can use 6model to start deleting other, older code, that helps the migration effort as well | |||
| dukeleto | For instance, this page is totally useless: trac.parrot.org/parrot/wiki/DeveloperTools | 15:25 | |
| dukeleto deletes the wrong stuff, and there is almost nothing left | 15:26 | ||
| how do people usually run the parrot test suite under valgrind these days? | 15:27 | ||
| we should probably also have something on the gcc compile farm running the test suite under valgrind as well | 15:28 | ||
| not_gerd | whiteknight: ie your plan is to re-implement PMCs on top of 6model instead of having 6model on top/next to the PMC infrastructure (as NQP currently does)? | 15:31 | |
| alvis_ | From one who is trying to "get up to speed on parrot," please let me second dukeleto's remarks. | 15:32 | |
| I've spend weeks, digging through docs, trac, etc., running into blind alley after blind alley. | |||
| whiteknight | not_gerd: Initially, my plan is to reimplement Class/Object/PMCProxy PMC types using 6model | ||
| that should make most PMC usages from HLLs automatically using 6model | 15:33 | ||
| dukeleto | alvis_: please, ask us questions in here or on parrot-dev. We won't bite :) | ||
| alvis_ | Then, when I decide on a course of action with which to contribute, I'm told: Naw, we're really not doing that any more. | ||
| dukeleto | alvis_: have you seen this? github.com/parrot/parrot/wiki/_pages | ||
| alvis_: can you give me the concrete example of what happened? | 15:34 | ||
| alvis_ | dukeleto: Thank you. I will. | ||
| dukeleto | i just deleted the DeveloperTools page on the trac wiki and converted the small bit of usefulness there to the github wiki | ||
| dukeleto fights the good fight | |||
| alvis_ | dukeleto: Sure, several: (1) Many of the tickets on trac are from 2008, 2009, or 2010 and, so, if your new (or returning), you think, "Ok, I can take one of these low priority things and work on it." | 15:36 | |
| But, then, you find, nope, everything's moved away from it. | 15:37 | ||
| whiteknight | yeah, we severely need to delete a bunch of old tickets | ||
| alvis_ | (2) Converting from perl5 tests to pir, but, no, pir is now out-of-favor. | ||
| whiteknight | alvis_: if you send us links to the bad ones, we'll kill with great fire | ||
| dukeleto | alvis_: this is the problem with tickets. They don't have a self-desctruct button | ||
| alvis_: some test would still be valuable to convert to PIR | 15:38 | ||
| alvis_ | (3) Much of the docs on parrot.org are just ... old. | ||
| whiteknight | yes, converting from Perl5 to PIR, where possible, is still good to do | ||
| dukeleto | alvis_: basically, we don't want people to start writing new languages and libraries with PIR, but PIR still has good use inside parrot core | ||
| whiteknight | and that's my point with parrot.org: It's too hard to keep it updated! | ||
| dukeleto | alvis_: what kind of stuff are you interested in hacking with parrot? | 15:39 | |
| alvis_: a language in particular? A new language? a new library? | |||
| not_gerd | whiteknight: your 6model branch is based on perl6/nqp? or on 6model/c? | ||
| alvis_ | dukeleto: Yeah, I agree. And I do plan on contributing. I just gotta get my bearings. | ||
| dukeleto | alvis_: we have lots of stuff for you to do, but we get an F currently in making that info easily available to newcomers | ||
| whiteknight | not_gerd: I stole the C code from perl6/nqp repo | ||
| alvis_ | dukeleto: agreed. | ||
| dukeleto | alvis_: can you successfully run "make test" and "make smoke" to submit a test report? That is a good step. | ||
| whiteknight | not_gerd: I figure that's the one that's actually used by Rakudo now | ||
| alvis_ | dukeleto: Yes and sure. I just figured there were already a'lot of folks submitting smoke tests. | 15:40 | |
|
15:41
jsut_ joined
|
|||
| not_gerd | whiteknight: 6model/c is based on perl6/nqp as well (more) | 15:42 | |
| don't know if its easier to rip out parrot-specific struff from the nqp version or to add it to the C version | |||
| alvis_ | dukeleto: To answer your question about languages. My intent was to port a new language, currently enjoying rapid and development on the JVM, to Parrot. | ||
| dukeleto: What started me looking into Parrot's guts was trying to figure out how to write persistent, immutable data structures for the language. | 15:43 | ||
| not_gerd | (where parrot-specific should be read as PMC-dependence) | ||
| dukeleto | alvis_: what is this language? | 15:44 | |
| alvis_ | dukeleto: And, as I trying to figure that out, there's just a'lot of out-dated, incorrect, and inconsistent docs, verbiage, yada, yada. | ||
| benabik | alvis_: Oooh, persistent, immutable data is neat. Parrot needs more support for that. | ||
| benabik wants a functional language in Parrot. | 15:45 | ||
| benabik adds that to the list of "yeah, I'll do that someday". | |||
| dukeleto just sent a reply to parrot-dev. The wiki is in migration. | |||
| benabik | dukeleto: Step 1: Add link to new wiki from old. | ||
| alvis_ | Well ..., I haven't really talked to the developer's about it yet ('cause I wanted to make the arguments with some core stuff first), but it's clojure. | ||
| dukeleto | benabik: already done, buddy ;) | 15:46 | |
| alvis_ | benabik: Right, I agree. It's way cool stuff. :) | ||
| benabik | I had a random thought about using Keys as cons cells. :-D | 15:48 | |
| dukeleto | whiteknight: how is jaesop coming along? | ||
| whiteknight: would like to help, but i don't really know what needs doing | 15:49 | ||
| whiteknight | dukeleto: I haven't touched it since last week. It's where it was last we talked | ||
| alvis_ | But the developers are all out of the Java/JVM, C#/CLR side of the world, and I'm outta the C/Perl side of the world. So ..., I wanna port it to something with some "real" performance, i.e, Parrot. | ||
| whiteknight | dukeleto: what it could most use now is more tests | ||
| dukeleto: especially tests for bits of the runtime, behaviors of objects, etc | |||
| dukeleto | did somebody say tests? | 15:51 | |
| whiteknight: i assume it uses rosella? | |||
| whiteknight | dukeleto: yessir | ||
| here's a good example of tests written in javascript: github.com/Whiteknight/jaesop/blob...e0/loops.t | 15:52 | ||
| alvis_ | whiteknight: Ok, on the converting tests from perl5 to pir. | ||
| benabik: What I _need_ is HAMT, and the only way I can think of doing it is in C. (Though, with winxedxx, that might be a route.) | 15:55 | ||
| whiteknight | HAMT? | 15:56 | |
| benabik | "Hash array mapped trie"? | ||
| alvis_ | benabik: Yup. | ||
| Need it to support immutability. | 15:57 | ||
| benabik | shoot. I was working on the wrong schedule. GTG> | 15:58 | |
| alvis_ | And to maintain consistency with the JVM implementation. | ||
| dukeleto | alvis_: sounds like HAMT is something that could go into github.com/whiteknight/parrot-data-structures | 16:13 | |
| whiteknight: if you give me a commit bit to jaesop, i will deliver some tests to you | 16:15 | ||
| alvis_ | whiteknight: Right. I've been looking at that. I've cloned it and have been poking around in it a'bit. | ||
| dukeleto | whiteknight: or i can fork. whatevs | 16:16 | |
| alvis_ | Anyway, I appreciate everyone's effort. Truly. And I'll start pointing out and submitting some things to parrot-dev (maybe even submit a patch or two along the way. :) | 16:18 | |
| dukeleto | good vim trick using ack : zackhobson.com/2011/09/02/vim-ack-grep.html | 16:43 | |
| alvis_: we appreciate constructive criticism, and good lord, we need a lot | 16:44 | ||
|
17:05
fperrad joined
|
|||
| dukeleto | ~~ | 17:37 | |
| Coke | aloha: msg mj41 that I've killed the Taptinder client. ping me when the server comes back online and I'll restart the client. | ||
| aloha | Coke: OK. I'll deliver the message. | ||
| Coke | dukeleto: (converting ticket systems) just do me a favor and don't ask me for help. ;) | ||
| I do recommend if you convert to github that you NOT do it manually. | 17:38 | ||
| dukeleto | Coke: i hear ya. I remember when you converted us from RT to Trac. | 17:40 | |
| Coke | (which, I contend, was a horrible idea. I should have fought it then. ;) | 17:41 | |
| well, horrible is strong. unnecessary is closer. | |||
| whiteknight | I don't think we need to do a ticket migration wholesale like we did last time | 17:51 | |
| I mean, trac is already closed down to ticket creation from new users, so it's basically dead where it is. If we say "open new tickets in github", that will be enough to get the process moving | |||
| I'll move the tickets I own, since github is where I want to be looking at them, and I'll dig through trac and start deleting cruft | 17:52 | ||
| other users can do the same, if they are so inclined | |||
| tadzik | so you guys are now ditching trac completely? | 17:53 | |
| whiteknight | tadzik: nothing official yet. It's a direction I would like to go in, but we hardly have concensus on the poin | ||
| point | |||
| tadzik | I see | ||
| whiteknight | ideally, I would like to ditch most of our current infrastructure. parrot.org is a hard-to-maintain drupal instance that causes us more hassle than we need. trac is increasingly hard to maintain and inferior in many respects to what github provides, etc' | 17:54 | |
| the fact that months later we still don't have even a rudimentary plugin in place to deal with trac ticket spam is a problem, and it's not for lack of looking | 17:55 | ||
| Every month doing the documentation update portions of releases is a hassle, server administration is a hassle, etc. If these things were all git repos and if all Parrot team members had commit access, things would be a lot easier | 17:57 | ||
| benabik | Back! | 18:04 | |
| cotto | ~~ | 18:07 | |
| benabik | Github has changed! The sky is falling! Aaahh! | 18:12 | |
| sorear | whiteknight: how easy is it to export github's issues? | ||
| benabik | ( github.com/blog/958-the-code-tab ) | ||
| cotto | oh noes! | ||
| benabik | Oh, hey. This Fork Queue thing is kinda awesome. Never knew it existed. | 18:14 | |
| cotto | the branch switcher makes up for the ugly orange and then some | 18:15 | |
| dukeleto | yay, issues per organization on github: github.com/blog/959-issues-dashboa...anizations | 18:17 | |
| benabik: fork queues are lovely | |||
| benabik | help.github.com doesn't have a search bar. :-( | 18:18 | |
| moritz wants all issues and pull requests for all repos where I have commit access, on a single page | |||
| benabik | Oh. Or I can click the ? on the fork queue page. Lovely. | 18:19 | |
| moritz: +1 | |||
| bubaflub | whiteknight or anyone discussing moving tickets off trac - I know GitHub has an API to create tickets, and Net::Trac (metacpan.org/module/Net::Trac) looks useful. do we want a script to glue the two together to transfer tickets? | 18:28 | |
| benabik | There are some ticket migration tools in existence. | 18:29 | |
| Coke | yes. please do not migrate tickets onesy twosy. | ||
| benabik | Most of them seemed to be one-off type scripts. | ||
| cotto | a couple hours hacking in Perl and suddenly PHP feels like a toy again | 18:31 | |
| tadzik | :) | 18:32 | |
| nine | green_threads, now with Zero Overhead (TM) | 18:34 | |
| tadzik | wooo | ||
| cotto | nine++ | 18:35 | |
| I guess that'd be ten. | |||
| bubaflub | nine: you mentioned two approaches to getting zero overhead in your email to parrot-dev - which one did you take? | 18:36 | |
| nine | bubaflub: the scheduler alarm gets set the first time, when a second task is put into the queue. Also in Parrot_cx_next_task I check if there are other tasks left and if not I do not set the next scheduler alarm. | 18:41 | |
| dalek | p: 05affcf | moritz++ | / (4 files): Merge pull request #23 from ruz/regexp-fixes Fixes for character classes in regexes |
18:44 | |
| whiteknight | nine++ | 18:45 | |
| bubaflub: a script to move tickets is fine. We still need to take some time to review old tickets and throw away the garbage | |||
| of course, if we had some kind of "ticket review guidelines" written up somewhere, that would be a good start | 18:46 | ||
| bubaflub: if you can find a way to move the tickets, that would be fine while we work on review guidelines | |||
| bubaflub | whiteknight: i'll hack around and see what i can get | ||
| but i agree that review guidelines would be nice | |||
| and more focus on our docs / tickets / plans would be great | 18:47 | ||
| Coke | closing tickets in place is awesome, of course. | 18:51 | |
| whiteknight | a big part of our problem is that we have too many tickets, and too many tickets which either aren't closable or should already have been closed | 18:52 | |
| keeping track of 100 tickets is easy enough. Keeping track of several hundred tickets spread out onto multiple pages of the website is impossible | |||
| Coke | Here are some guidelines: Is it a patch? if so, does it still apply? if not, regretfully inform the OP and close the ticket, thanking them. Is it an old build problem? give the OP 2 weeks to tell you it's still happening. If they don't get back to you, regretfully close the ticket. Does the ticket require a spec decision? assign to cotto. Does the ticket report a bug with code? run the code. if the output changes, say so. if it's the same, sa | 18:53 | |
| moritz | Coke: cut off after "if it's the same, sa" | 18:54 | |
| probably "say so" | |||
| Coke | code? run the code. if the output changes, say so. if it's the | ||
| same, say so, but only if it's been a year since the ticket was | |||
| updated. | |||
| that should let you close a few. | |||
| for a while, we were keeping code cleanup tasks in RT. kill those. | 18:55 | ||
| for a while, we were creating tickets for roadmap items with the thought that we'd use trac's roadmap feature. we don't, really. kill those. | |||
| whiteknight | yes, TODO items and roadmap items should not be tickets | 18:56 | |
| those kinds of things need too much discussion and too much visibility to be jammed into just another ticket | 18:57 | ||
| cotto | cute. Dart needs google's special gclient tool to download from vcs and then fails to build | 18:58 | |
| Coke | I think TODOs are ok in moderation, but are probably better served by a task list on the wiki somewhere. | 18:59 | |
| moritz: should we kill TODO tickets on rakudo and move them into the NOMMAP? | |||
| moritz | Coke: not sure... probably not | 19:00 | |
| Coke | moritz: plenty more tickets to kill with the current guidelines, anyway. | ||
| moritz | +1 | 19:01 | |
| cotto | a good ticket killing spree sounds great | 19:02 | |
| whiteknight | a TODO note in the code, exactly where it needs to be and with enough relevant information, can be much better than a ticket | 19:06 | |
| Coke | whiteknight: yes. at some point someone converted all those to RTs, and now, at least, I think it was a mistake. At the time I /think/ I was ambivilent. | 19:10 | |
| whiteknight | Coke: live and learn. We would be stupid if we didn't recognize mistakes and refuse to re-make them | 19:20 | |
| or, at least try to avoid them | |||
|
19:23
contingencyplan joined
19:40
benabik joined
20:18
rblackwe left
21:10
wagle_ joined
21:28
jsut joined
21:39
soh_cah_toa joined
21:41
nbrown joined
21:48
GodFather joined
21:52
PacoLinux joined
|
|||
| dukeleto | ~~ | 22:08 | |
|
22:09
GodFather joined
22:10
GodFather joined
22:14
soh_cah_toa_ joined
22:23
PacoLinux joined
22:32
whiteknight joined
22:33
Felipe joined
|
|||
| whiteknight | good evening, #parrot | 22:38 | |
| cotto | hi, whiteknight | 22:50 | |
| whiteknight | hello cotto | 22:51 | |
|
23:18
particle1 joined
|
|||
| cotto | www.slideshare.net/olvemaudal/deep-c - and I thought I knew C. | 23:25 | |
| though much of C programming is "don't do that" | 23:27 | ||
|
23:30
not_gerd joined
|
|||
| whiteknight | I knew almost all of that, but good programming practices can help you avoid that kind of crap without worry | 23:30 | |
| not_gerd | hello, #parrot | ||
| cotto | speaking of knowing things, here's not_gerd | ||
| whiteknight | not_gerd! | 23:31 | |
| cotto | say "hi" while !gerd | 23:32 | |
| not_gerd | it's nice to feel appreciated... | ||
| saw in the logs that you were discussing the deep-c slides... | 23:33 | ||
| I didn't go through them all, but did they mention the leadig-underscore issue? | |||
| ^leading | |||
| (pet peeve of mine) | |||
| whiteknight | where they conflict with assembly symbols? | 23:36 | |
| not_gerd | most uses of leading underscores are forbidden by the C standard because they are reserved, but no one seems to care | 23:38 | |
| (mostly out of ignorance, imo) | |||
| using _ + upper case is especially bad because that's what new language keywords use | 23:41 | ||
| eg _Bool, _Generic, _Atomic, _Thread_local,... | |||