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