|
Parrot 4.5.0 "Buff-faced Pygmy Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 8 July 2012. |
|||
| benabik | Going alright, I suppose. Starting to adapt... Not sure if we're managing to get more sleep or if we're dealing better with what we're getting. | 00:00 | |
| Days are alright though. Newborns are sessile enough that I'm starting to spend time on the computer again. | |||
| (obviously) | 00:01 | ||
| whiteknight | it is amazing how quickly your body can get accustomed to the new sleep schedule. | ||
| it's never perfect, but it's not as bad as you'd expect | |||
| some people get lucky, and theirs sleep through the night from day one | 00:03 | ||
| my wife and I were not among that select few | |||
| on his first birthday we finally decided enough was enough | |||
| okay, here's my new algorithm for the readline: | 00:13 | ||
| 1) setup a temporary STRING header for the buffer. Scan it. Search the contents for the substring. | 00:14 | ||
| 2) if found, return everything up to the terminator and discard the terminator | |||
| 3) if not found, return the first half of the buffer contents. Shift everything forward and fill the buffer. Repeat | |||
| well, that's the algorithm for the buffer-related parts | 00:16 | ||
| benabik | whiteknight: Oh, he's not sleeping through the night (which is good, because of the jaundice, we need to feed him very regularly)... But he's sleeping in long enough chunks that I'm not going crazy... | 00:45 | |
| whiteknight: Except when he just decides to start crying and crying... Oy. | |||
| (which was right now, if you couldn't guess.) | |||
| whiteknight: Why half? | 00:46 | ||
| whiteknight | benabik: just because of the way buffers work. They read from the beginning and fill from the end. When the buffer is less than half full we can memcpy things forward and fill at the end | 01:09 | |
| so if the terminator is more than x/2, there's a chance we read up to the first character, not find enough, and not have enough space to memcpy it | 01:10 | ||
| benabik | Ah. Makes sense. | ||
| whiteknight | the old system would try a memmove after every read | 01:13 | |
| benabik | sounds like a lot of extra spinning | 01:14 | |
| whiteknight | the new buffers are definitely faster in the small benchmarks I've tried | 01:21 | |
| anyway, it's go time | 01:26 | ||
| later | |||
|
01:54
aloha joined
|
|||
| kid51 | aloha, sessile? | 02:18 | |
| aloha | kid51: No clue. Sorry. | ||
|
04:09
dngor_ joined
05:00
fperrad joined
|
|||
| dalek | d_parrot: de058db | (Bart Wiegmans)++ | / (8 files): more tests and initial work on psgi loader |
06:22 | |
|
07:04
brrt joined
07:24
plobsing joined
|
|||
| moritz | whiteknight++ # fix the read-beyond-end-of-buf bug in io_cleanup1 | 08:05 | |
| brrt | hey, moritz :-) | 08:07 | |
| moritz | \\o brrt | ||
| brrt: did you fill out the midterm evaluations already? | 08:08 | ||
| brrt | ... i knew i was forgetting something | ||
| moritz | go, go, go! | ||
| brrt | yes, will do | ||
| oh, as an aside | |||
| what language would you recommend on me teaching my (relatively non-technical) girlfriend as her first language | 08:09 | ||
| tadzik | Go, maybe? | 08:10 | |
| brrt | .. but I don't know Go | ||
| tadzik | talk about being in sb else's shoes ;) | 08:11 | |
| brrt | (isn't that the google language?) | ||
| tadzik | it is | ||
| brrt | fair enough | ||
| thats not actually so bad an idea | |||
| tadzik | better gather some more opinions, I'm not at all experienced in recommending a first language to anyone :) | ||
| moritz | brrt: what does she want to do with it? | 08:12 | |
| I think I'd teach my wife VBA, because she does lots of work in office | |||
| and none with plain text files | |||
| cotto | python's not too bad as a starting language. | ||
| brrt | i'm not exactly sure | ||
| i was doubting between python and ruby myself | 08:13 | ||
| cotto | perl family languages are great, but you have to ease in to timtowtdi | 08:14 | |
| brrt thinks perl is a great language to use, not so much to teach | |||
| there is really a /lot/ to know | |||
| what about javascript? | |||
| moritz | well, if I were to teach a general purpose scripting language it would be perl, because that's the only I know well enough to teach :-) | 08:15 | |
|
08:16
lucian joined
|
|||
| brrt | submitted :-) | 08:27 | |
| moritz | brrt++ | 08:28 | |
|
08:48
lucian joined
|
|||
| brrt | anyway.. did anybody ever read and consider my email about the enviroment hash | 09:31 | |
| moritz | I did | 09:32 | |
| curiously we had a related discussion in #perl6 one or two days before you sent it | 09:33 | ||
| the problem is really that from the outside, a process has just one environment | |||
| and that outside view matters whenever you interact with the outside world (spawn a process, dyncall a C function) | 09:34 | ||
| so if you have per-interpreter or per-thread env hashes, you need to synchronize the outside view with the inside view of your environment | |||
| (which also implies that synchronizing env and doing the call must be an atomic operation) | 09:35 | ||
| which shifts the costs from manipulating ENV to doing external calls | 09:36 | ||
| which might not be desirable for a general-purpose VM | |||
| brrt: though for your purpose it might be desirable to go ahead nonetheless, and have an API for "publishing" and ENV has to the process-level ENV view manually | 09:41 | ||
| brrt | oh, sorry, was away | 09:48 | |
| i see | 09:49 | ||
| ... that sound.. hard | 09:50 | ||
| moritz | which part? | ||
| brrt | synchronizing the enviroment for dynamic calls | 09:51 | |
| because, in my planned system | |||
| moritz | if you do it automatically, yes | ||
| brrt | there might be multiple threads with each a different enviroment | ||
| dyncall would be a locking operation | 09:52 | ||
| each with a different interpreter, even | |||
|
10:20
Psyche^ joined
10:30
brambles joined
|
|||
| brrt just noted that there is a [vtable] modifier for winxed | 11:50 | ||
| teh awesome | |||
|
12:23
kid51 joined
12:38
whiteknight joined
12:40
JimmyZ joined
12:45
mtk joined
12:54
PacoAir joined
|
|||
| brrt | ping whiteknight | 13:09 | |
| whiteknight | pong brrt | 13:10 | |
| brrt | hows life :-) | ||
| moritz++ told me to fill in my mid-term evaluation, so i did | |||
| and he also responded to my e-mail about making the enviroment an interpreter-local hash | 13:11 | ||
| moritz | (though I replied on IRC; it's in today's backlog) | 13:12 | |
| brrt | saying that it was important (for parrots general purposes) to have the enviroment for the program equal to the enviroment on the outside world | ||
| which is uhm, a hard problem | |||
| whiteknight | yes | 13:14 | |
| moritz | which is the reason that mod_perl doesn't use CGI as its API | 13:16 | |
| that's my guess, at least | |||
| arnsholt | More likely that it's an interface to Apache's module functionality, which is pretty different from CGI, I think | 13:17 | |
|
13:26
mtk joined
|
|||
| brrt | ... of course, i can still check modperl | 13:28 | |
| which would be an awesome idea if that code was remotely readable | |||
|
13:28
TonyC joined
|
|||
| brrt | anyway, i can (easily) supply psgi as an api | 13:29 | |
| but is is a bit more of a setup | |||
| oh, whats more | |||
|
13:33
bluescreen joined
13:34
nopaste joined
14:37
dmalcolm joined
|
|||
| brrt | folks, i have a quick question | 15:36 | |
| is there a PIR or winxed equivalent of running bytecode with a specific interpreter | |||
| i.e. Parrot_api_run_bytecode(interp, byteCode, params) | |||
| that would be awesome for my purposes | |||
| whiteknight | interp.run(), I think | 15:42 | |
| let me look | |||
| brrt | ok | 15:43 | |
| whiteknight | no, that doesn't seem to exist | 15:44 | |
| hmmm.... | |||
| long ago, An "interp" was synonymous with a "thread". 1 thread = 1 interp | |||
| but that isn't really the case anymore, necessarily | |||
| brrt | .. no | ||
|
15:46
JimmyZ_ joined
|
|||
| brrt | .. i'm going to try constructing 10.000 interpreters | 15:49 | |
| lets see how long that takes | |||
| 100 interpreters takes 0.675 sec | 15:51 | ||
|
15:52
jashwanth joined
|
|||
| brrt | oh, interpreter pmc's do have invoke | 15:52 | |
| 10 thousand interpreters take 52 seconds | |||
| ergo. 0,0052 s / interpreter | 15:53 | ||
| oh, only about 19 seconds of that is user | 15:55 | ||
| brrt will experiment with child interpreters | 15:58 | ||
| whiteknight | the interp does have an invoke vtable, but that doesn't look extremely useful. If you need a new method added, let me know | 16:00 | |
|
16:04
JimmyZ joined
|
|||
| Coke | at the time I was thinking about doing tcl-level interpreters for partcl, I'm pretty sure parrot wasn't ready. This unhelpful historical comment brought to you by the letter P. | 16:36 | |
| If time ever permits, I'll get back to it. hopefully brrt will have dealt with it by then. ;) | |||
| whiteknight | A lot of improvements to the interp and it's capabilities will fall out of the threading work and the security work | 16:39 | |
| dalek | d_parrot: 73043aa | (Bart Wiegmans)++ | loader/ (2 files): PSGI loader should work in theory |
16:40 | |
| d_parrot: d98b20f | (Bart Wiegmans)++ | loader/ (2 files): Bugfix in psgi.winxed |
|||
| whiteknight | I hope so, anyway | ||
| whiteknight | I don't think the ParrotInterp PMC can become any more jumbled or less functional, that's for sure | 16:45 | |
|
16:56
jashwanth joined
16:59
fperrad joined
17:01
mtk joined
17:04
contingencyplan joined
|
|||
| benabik | ~~ | 17:56 | |
| dalek | rrot: 29fb14e | alvis++ | docs/project/release_manager_guide.pod: Added myself as release manger for 4.8.0. |
18:03 | |
|
18:07
alvis left
18:08
alvis joined
18:22
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#474 (master - 29fb14e : Alvis Yardley): The build was fixed. | 18:22 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/6...fb14e97d1e | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1828568 | |||
|
18:22
travis-ci left
|
|||
| dalek | p/toqast: d11e353 | jnthn++ | src/QAST/Var.nqp: Add QAST::Var.default (not needed for Rakudo, but it's part of what replaces viviself, and NQP will need it). |
18:28 | |
|
18:37
brrt joined
18:45
bluescreen joined
19:08
brrt joined
|
|||
| brrt | hey everybody, i'm looking throught the parrot api source files | 19:11 | |
| i read the comment ' todo this works only for the initial bytecode file ' on Parrot_api_load_bytecode_file | 19:12 | ||
| however | |||
| that function works very well for me, loading multiple bytecode files | |||
| moritz | then remove that comment | ||
| brrt | :-) | 19:13 | |
| oh, by the way, calling invoke on a parrot interpreter pmc really quickly leads to core dumps | 19:19 | ||
| so i'm not sure if i'm doing that right | 19:20 | ||
|
19:26
NotFound joined
|
|||
| NotFound | ~~ | 19:26 | |
| brrt | \\o NotFound | 19:27 | |
| NotFound | Hi | 19:28 | |
|
19:29
lucian joined
|
|||
| cotto | #ps time | 19:32 | |
|
19:40
sivoais joined
|
|||
| dalek | CT: 7d71f38 | benabik++ | src/disasm.winxed: disasm: Remove unused "useful opcodes" |
20:00 | |
|
20:16
tuxit joined
20:18
dukeleto joined
|
|||
| dukeleto | ~~ | 20:18 | |
| dalek | CT: e1b0435 | benabik++ | / (3 files): Introducing PACT.Packfile.Decompile It's just the real guts of disasm pulled out into a 'library'. Not a good interface right now, but it's enough that I can start trying to test this mess. |
||
|
20:58
perlite_ joined
21:15
bluescreen joined
21:19
kid51 joined
|
|||
| dalek | p/toqast: b6e9580 | jnthn++ | src/QAST/Operations.nqp: Start sketching out various exception related operations. |
22:51 | |
|
23:08
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:44 | |