Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), merge gc_* branches, fix/replace/optimize hashing
Set by moderator on 3 August 2010.
00:02 ruoso joined 00:03 Paul_the_Greek joined
Paul_the_Greek If I want to work on an open ticket, do I make myself the owner? 00:03
dalek website: Chandon++ | Moving to multiple OS threads 00:15
website: www.parrot.org/content/moving-multi...os-threads
00:35 Casan joined 00:45 kid51 joined
kid51 backscrolls 00:47
Hmm, Paul_the_Greek didn't stick around for an answer to his question.
cotto_work bad habit there 00:48
kid51 nopaste still kicked, I take it
cotto_work and purl too
sorear purl isn't even on the server
kid51 purl? What did that bi..., er, bot, do to get kicked? 00:49
erikh it's offline. no idea why.
kid51 (And we'll soon see if smolder is working.)
erikh I suspect hachi knows, though.
kid51 but hachi's not around ... which may be the explanation
Well, even bots deserve vacation ... in this heat 00:50
erikh heh. 00:54
kid51 No, Smolder is still down, 3rd night in a row 00:55
01:07 plobsing joined 01:11 JimmyZ joined 01:12 tcurtis joined 01:25 ruoso joined
plobsing ping ash_ 01:28
ash_ pong
hows your week going? 01:29
dalek ee-optimization: b05292d | tcurtis++ | (7 files):
Merge branch 'master' into pass-manager
ee-optimization: 3bf0507 | tcurtis++ | t/tree-optimizer.t:
Add tests for :when.
ee-optimization: 116e917 | tcurtis++ | t/tree-optimizer.t:
Add a simple test for :recursive.
ee-optimization: 128fb26 | tcurtis++ | src/Tree/Optimizer/Pass.nqp:
Implement :when.
ee-optimization: f0b2807 | tcurtis++ | t/tree-optimizer.t:
Add failing tests for repeatedly running an optimizer.
ee-optimization: 542b6b1 | tcurtis++ | src/Tree/Optimizer.nqp:
Make repeated calls to Tree::Optimizer.run work in the presence of dependencies.
ee-optimization: 68344b1 | tcurtis++ | t/tree-optimizer.t:
Test that match result is passed into the transformation in :when passes.
tcurtis Oh dear. I'm sorry.
ee-optimization: 97d95b0 | tcurtis++ | src/Tree/Optimizer/Pass.nqp:
Pass the match result into the transformation for :when passes.
ee-optimization: 91fd0a8 | tcurtis++ | t/tree-optimizer.t:
Add another :recursive test and tests for combined :when and :recursive.
ee-optimization: da979a4 | tcurtis++ | s (3 files):
Add support for :recursive, though :when and :recursive still don't work
ee-optimization: 1d02bc6 | tcurtis++ | src/Tree/Optimizer/Pass.nqp:
Make :when/:recursive play nicely.
ee-optimization: 423e032 | tcurtis++ | t/tree-optimizer.t:
Add tests to make sure :combine works properly.
ee-optimization: 51655ac | tcurtis++ | t/tree-optimizer.t:
removed debugging commented out line.
ee-optimization: caae635 | tcurtis++ | s (5 files):
Implement :combine.
ee-optimization: 73b3c7a | tcurtis++ | t/tree-optimizer.t:
Remove unnecessary whitespace.
ee-optimization: ca78f94 | tcurtis++ | t/tree-optimizer.t:
Add tests for correct null-handling.
ee-optimization: d224501 | tcurtis++ | src/Tree/Optimizer/Transformers.nqp:
Fix null handling in Tree::Optimizer's transformers.
ee-optimization: fd9186d | tcurtis++ | (2 files):
Merge branch 'master' into pass-manager
plobsing is it over? can I un-duck now?
tcurtis I think so. 01:31
ash_ lol
plobsing to answer your question, I've been trying to get back into the swing of things after hitting pause during the code-slush 01:32
you?
ash_ i have been trying to understand the various parrot op calls, and context's 01:34
that, and i got a sample of try.rakudo.org/shell working
on the live site
plobsing op calls and contexts?
ash_ for my tool to make an exec out of a pbc 01:35
for being able to do things, like call Parrot_add_i_i() directly
plobsing be careful to not be falling into the deep introspection trap again just yet. 01:36
ash_ well, i have a sample script that reads the pbc and loads the opcodes from the oplib (based off of one I found in winxed) 01:37
code.google.com/p/winxed/source/bro...ile.winxed does it, but i use oplib to find the name of functions from their op code
so, i can say what is op 145 (just making up a number) and oplib says thats add_i_i 01:38
which i know in C just needs Parrot_add_i_i(); to be a valid call
the confusing part is setting up the context correctly, so when inside add_i_i it does IREG(1) it gets the right thing
and i am seeing that the parrot internals aren't setup for this kind of calling convention, i think 01:39
plobsing hmmm... yeah. There are a few other places that create mock context objects to do similar things.
Off hand, I know IMCC does that to fold constants. 01:40
But I think you'll have to maintain a proper context object for this to work right. 01:41
ash_ ya, i think so too
plobsing you're not hitting any blockers on this right now, correct? 01:43
ash_ i was thinking, i'd probably need to still need to load the pbc into memory the same way you normally do
the only blocker is understanding the internals
since i am trying to toy with a lot of the internals, it's sometimes a bit confusing 01:44
plobsing I feel the same way sometimes. 01:46
The only cure is more code diving.
ash_ ya
i am wondering if i am doing this in the right place
plobsing Doing what? 01:47
ash_ how far along is the lorito prototype?
plobsing lorito has been landing RSN for the last 8 months at least.
ash_ the prototype i saw on github, github.com/atrodo/lorito/ seems to have a much more simple codebase 01:48
is what i am getting ad
at*
for instance, github.com/atrodo/lorito/blob/master/core.c#L47 is the big chunk of code that is executing each op
its a big loop, with a switch statement in it, exactly the kind of thing i was trying to work out how to get rid of 01:49
plobsing yeah, sure. But that's just what parrot runs on. Parrot still runs PBC. 01:50
ash_ ya
i know
i just am having a harder time finding the parts i want in parrot, its a bit bigger, and more complicated 01:51
plobsing Wait until lorito + layers becomes complete. I doubt you'll see much reduction in (that kind) of complexity.
cotto_work I'm trying to re-wrap my head around CPS so I can figure out how Lorito is supposed to use it. 01:52
ash_ CPS?
cotto_work chromatic posted some pseudocode but I'm having trouble figuring out what the actual code would be.
continuation-passing style
plobsing I thought CPS was on top of lorito.
cotto_work What I'm understanding from discussions is that Lorito-level functions will work by cps. 01:53
ash_ ah, continuation's are a bit confusing, espcially in languages that don't support them well...
cotto_work yarly 01:54
tcurtis Continuations are quite confusing. Even if languages that support them well. :)
s/if/in/
plobsing I figured lorito would have to be flat (compile down to gotos). PCC and CPS are heavy. 01:55
ash_ in C doesn't that mean setjmp and longjmp?
cotto_work fortunately they can be faked reasonably well in perl 5 so I can at least have something runnable
Lorito is gotos. with CPS on top. 01:56
My efficiency questions are on hold until I understand the problem better.
but they're there
cotto_work goes away 01:57
plobsing ash_: In any event, I think it's a bit early to be targetting your tool at compiling/running with Lorito. It is subject to a lot more change than is core parrot. 01:58
ash_ ya, makes sense
just seemed like an easier starting point, but i can keep trying at what i am working on, i just haven't made any substantial progress mostly because i am spending most of my time trying to understand the internals of parrot 01:59
plobsing if you're stuck on something, don't be afraid to ask questions.
chromatic Imagine that Lorito M0 is a virtual machine for C instructions. 02:00
Imagine that you have to build C's calling conventions out of those tools.
Every function call built on top of M0 is merely a jump to an address that knows how to look *somewhere* for the continuation and the other registers. 02:01
Similarly, every function return... but that's how CPS works.
dalek rrot: r48323 | jkeenan++ | trunk/t/native_pbc (4 files):
Update 3 .pbc files so they pass on Darwin/PPC as well as Linux/i386.
02:02
kid51 (It turns out it was actually 4 .pbc files that were thus updated.) 02:06
ash_ here's a question, in some of the ops (for instance, add_i_i) it calls IREG(1) = IREG(2) + IREG(3); IREG seems to be: #define IREG(i) Parrot_Context->bp.regs_i[cur_opcode[i]]; so, is bp.regs_i a list the size of the number of INTVAL registers that the whole program needs? 02:07
its defined as INTVAL *regs_i; so i assume its an array 02:08
sorear s/program/function/
kid51 What is M0?
sorear regs_i is the Ixx part of the current stack frame
ash_ so, does each call to a function have a different regs_i? 02:09
plobsing yes
you can think of that as a stack frame of sorts.
ash_ ah, i was wondering if they each had their own or if there was a global one, got ya
okay, so each call generates a new regs_i
plobsing yes. the size is determined by the n_regs_used attribute on the invoked sub PMC 02:11
tcurtis Odd. "parrot src/plumage.pbc" works, but the plumage fakecutable gives a bytecode version error. 02:12
plobsing make dependancy failure more likely than not
cotto ~~ 02:14
kid51 nopaste.snit.ch/22565 02:17
kid51 must sleep
cotto kid51, M0 is the low level Lorito ops 02:18
plobsing why M though?
dalek rrot: r48324 | jkeenan++ | trunk/src/hash.c:
[codingstd] No space after opening parenthesis.
cotto "Microcode" or "Magic"
M0 has no magic 02:19
M1 (PIR) has some magic
etc
plobsing when do we get M4?
cotto should have seen that coming too
02:22 integral joined
ash_ M0 = lorito, M1 = pir, M2 = nqp, M3 = rakudo, M4 = ... profit? 02:23
plobsing M4 = www.gnu.org/software/m4/m4.html 02:25
sorear M4 on Rakudo is an integral part of the self-configuring parrot 02:26
plobsing Yeah, now autoconf only tries sniffing my fortran compiler for 5 minutes. I could be having hours of auto-configuration fun. 02:27
ash_ what is check_events for?
plobsing it checks the event queue
ash_ its called after ever op in parrot? 02:28
plobsing where do you see that?
ash_ i made a simple test program, gist.github.com/509128 and decoded the pbc and printed out the ops in order 02:29
main is that set of 15 ops, which calls check_events almost every time there is an op called 02:30
japhb tcurtis, plobsing: Um ... did someone break plumage again? 02:31
tcurtis japhb: I'm not sure. It may just be something wrong with my parrot install or something. 02:32
plobsing japhb: not that I know of
japhb *phew* 02:33
plobsing ash_: opcodes include their arguments. You are seeing checkevents a lot because you are erroneously intepretting op-args as op-numbers 02:34
it's also why you're seeing a lot of "end" and "nop"
ash_ ah
that makes sense
plobsing s/nop/noop/ # why isn't it nop?
ash_ no op? vs nop? beats me 02:35
plobsing don't decode by hand though. trust pbc_disassemble. unless you're messing with the bytecode format (then you're on your own)
ash_ i am currently working with winxed's example/packfile.winxed, i modified it a bit to also print a few other details 02:36
02:42 darbelo joined 02:56 ash__ joined
ash__ Do you have any idea where in imcc it makes it's temp contexts for the constants? 03:00
plobsing I'm having trouble finding it. Sorry. 03:14
ash__ No problem, I'll look over the tests to see if that give me any hints 03:18
03:31 LoganLK joined 03:57 janus joined 04:01 ash__ joined
Coke hachi is working on resurrect purl. sounded like a machine crashed. 04:01
ash_: wow, it's just as slow as from the command line! ;) 04:02
MI5. 04:04
04:04 ash___ joined
Coke (those make more sense if you insert them in backscroll!) 04:05
ash_ Coke: do you mean the try.rakudo.org?
Coke ash_: hai. 04:06
ash_ is that what you were referring to? 04:07
Coke sorry, hai == yes. 04:14
ash_ ah, kk 04:23
tcurtis Coke: "MI5" made sense to me; although I had a similar thought earlier. 04:26
dalek parrot: 9964752 | (Jonathan "Duke" Leto)++ | (4 files):
Fix and test the trustedness of languages; update pgTAP Lite
04:48
theory dukeleto: pgtap.org/documentation.html#language_is_trusted 04:50
Oh, that's what you copied. Never mind.
05:40 erikh joined 06:06 Casan joined 06:30 brianwisti joined
dalek kudo: 0128ccd | pmichaud++ | docs/ROADMAP:
Initial ROADMAP updates from Pisa hackathon.
06:45
rrot: r48325 | NotFound++ | trunk/src/pmc/default.pmc:
implement Default.init_int
06:52 brianwisti left
cotto Profiling seems to be "really important" to Rakudo. I feel motivated. 06:55
dalek rrot: r48326 | NotFound++ | trunk/src/pmc.c:
instantiate class with null arg and call set_integer_native on the instance instead of instantiate using a temporary Integer in Parrot_pmc_new_init_int
07:18
rrot: r48327 | NotFound++ | trunk/src/call/args.c:
use init_int in slurpy postional presizing in fill_args, as suggested in r48320
07:28 bacek_at_work joined
dalek kudo: b627e33 | pmichaud++ | src/core/Cool-num.pm:
Add constant 'i' (RT #76994).
08:11
08:23 smash joined
dalek kudo: e65cb72 | masak++ | docs/ROADMAP:
[docs/ROADMAP] whitespace therapy
08:29
08:32 robin-gvx joined 08:54 fperrad joined 09:02 mikehh_ joined 09:18 bacek joined 09:22 aloha joined 09:51 penguin_ joined 09:55 Hunger joined 09:56 dalek joined 10:04 szabgab joined
dalek kudo: 7083478 | moritz++ | src/Perl6/ (2 files):
Implement :i and :s on rx//; refactor adverb validation a bit
10:49
10:51 AndyA joined 10:56 whiteknight joined 11:08 lucian joined 12:11 smash joined 12:15 bluescreen joined 12:18 khairul joined
whiteknight good morning, #parrot 12:19
12:25 wknight8111 joined 12:27 bluescreen joined
dalek rrot: r48328 | NotFound++ | trunk/t/pmc/oplib.t:
add a test for Opcode.get_string
12:32
12:37 ruoso joined
Coke cotto: (profiling important) you getting pressure from someone who is not me? 12:45
12:49 mikehh joined 13:21 Paul_the_Greek joined
Paul_the_Greek If I've selected a ticket to work on, do I want to become the owner? 13:22
dalek rrot: r48329 | coke++ | trunk/src/pmc/env.pmc:
remove XXX comment - you /can/ iterate over env, and speculative spec changes
Coke Paul_the_Greek: if no one else owns the ticket, yes, you should claim it. 13:24
Paul_the_Greek I'm logged in an looking at the ticket, but I'm failing to see how to take ownership. 13:25
Coke you don't have privs. what's your trac id? 13:32
Paul_the_Greek Paul C. Anagnostopoulos
Coke reload. 13:33
Paul_the_Greek Oh yes, that looks much better. Thanks.
dalek TT #1728 closed by coke++: Add more signatures for for PAST op types. 13:47
TT #1728: trac.parrot.org/parrot/ticket/1728
13:54 plobsing joined 13:55 davidfetter joined 13:56 ambs joined
dalek rrot: r48330 | coke++ | trunk/compilers/pct/src/PAST/Compiler.pir:
add some more pirop signatures for PCT (and by extension, NQP). TT #1728.
13:56
Coke pmichaud: danke for the quick review. I hadn't even gotten back to caring about that since yesterday. 13:58
pmichaud Coke: you're welcome; it was handy in my mail so I looked it over quickly. :)
Coke of course, partcl is still littered with the verbose syntax, but that lets me kill a lot of it. 13:59
14:02 ambs joined 14:29 tadzik joined
tadzik hello 14:29
is someone aware how many languages from parrot.org/languages are actually working or complete? I looked at Python and Ruby implementation but they seem untouched since some ancient times and don't seem to work. Is there anything worth exploring, besides obviously Rakudo and NQP? 14:30
14:32 Paul_the_Greek joined
Paul_the_Greek I've submitted a patch by attaching the file, adding a comment, and changing the type to 'patch'. Is that everything I need to do? 14:33
particle tadzik: parrot's lua passes the official lua test suite 14:34
Paul_the_Greek Congrats! 14:35
wknight8111 particle: is the lua compiler still working and maintained? 14:36
tadzik wknight8111: looks so, last commit is from June 14
wknight8111: and it works, just checked
wknight8111 nice
tadzik not really faster than official lua compiler, but looks nice 14:38
particle nobody promised "faster" 14:52
it's complete, and therefore it's a good language to use for benchmarking parrot speed
but the parrot team still needs to take a hard look at optimizations 14:53
Coke tadzik: we can't easily keep the list up to date.
partcl (the original) was able to run the tcl test suite. (and fail a lot, but it could run tcltest.tcl, which is something.) 14:54
partcl-nqp is easier to write, but has less done. (a rewrite in pct)
erikh hrm. I bet rubinius would be a lot easier to port to parrot than MRI. 14:55
atrodo Has there been any talk about auto/semi-auto tinder box for languages?
erikh although, one of the big differences in rubinius is that Thread.new actually maps to native system threads 14:56
not sure how well parrot handles that.
14:59 brianwisti joined 15:04 TonyC joined, Andy_ joined
dalek kudo: 1270a9c | pmichaud++ | docs/ROADMAP:
Add 'constant' into ROADMAP.
15:06
kudo: aa7de66 | pmichaud++ | docs/ROADMAP:
Merge branch 'master' of github.com:rakudo/rakudo
kudo: c716715 | pmichaud++ | src/Perl6/Grammar.pm:
Give an error for smartmatching against 'True' or 'False'.
kudo: 590f3ba | pmichaud++ | src/Perl6/Grammar.pm:
Also warn for use of Bool::True and Bool::False in smartmatch (based on local
kudo: 7e356cc | pmichaud++ | src/Perl6/ (2 files):
Merge branch 'master' of github.com:rakudo/rakudo
kudo: 19931fe | pmichaud++ | README:
Update README with pointer to Rakudo Star distributions.
tadzik Coke: I see 15:16
15:19 theory joined 15:20 chromatic joined, ash_ joined 15:21 Paul_the_Greek joined
Paul_the_Greek Hey folks. If I've attached a patch to a ticket and changed the type to 'patch', do I need to do anything else? 15:21
moritz maybe point us to the ticket here :-) 15:22
Paul_the_Greek This one: trac.parrot.org/parrot/ticket/1605
Coke it'll show up on the parrot-tickets list, also. 15:23
(when you change ticket status)
moritz Paul_the_Greek 15:24
Paul_the_Greek++ # submitting patches 15:25
Paul_the_Greek Ah, do I have to change the patch status to 'new'? 15:28
Coke I wouldn't worry about it. 15:29
I doubt anyone is running reports on trac on patches that are checking that flag.
Paul_the_Greek So merely attaching the file is sufficient to submit the patch?
Coke yes, it's already there. I've looked at it. 15:30
15:36 ash_ joined
Paul_the_Greek Thanks. 15:37
15:42 ambs left
chromatic Parrot::Install's eval block on line 229 has a fair bit of ugly. 15:57
msg bacek parrot-nqp loooooves memory when running gc_massacre. Is buffer reclamation implemented or working? 15:58
16:09 macroron joined 16:20 ash_ joined 16:41 davidfetter joined 17:10 brianwisti1 joined
dukeleto theory: is there a reason you sent me the language_is_trusted link? 17:10
theory dukeleto: I thought you re-invented the wheel. Then realized that you didn't.
so ignore moe 17:11
*me
dukeleto tries not to reinvent square wheels. theory++ for keeping an eye on me
theory dukeleto: Only came to my attention because my client watches for "pgtap" 17:12
And then only when I'm online, of coursre
17:12 Paul_the_Greek joined
davidfetter would love to have an offline client that notifies such stuff 17:13
Paul_the_Greek Are you folks in the habit of changing internal identifier names that have become misleading?
davidfetter i guess a listenbot would do
cotto_work ~~ 17:16
dukeleto Paul_the_Greek: what do you mean?
Paul_the_Greek The buffer macro Buffer_bufrefcountptr no longer has anything to do with reference counts.
dukeleto Paul_the_Greek: that seems less than ideal 17:17
Paul_the_Greek Where there was a reference count there is now a pointer to the Memory_Block.
17:18 desertm4x joined
cotto_work nice cognitive dissonance there 17:20
INTVAL * const buffer_flags = Buffer_bufrefcountptr(d);
cotto_work wonders when that code was last touched 17:21
dukeleto theory: would you accept a patch for language_isnt_trusted ?
theory dukeleto: Sure. 17:22
Paul_the_Greek It's even better: That word contains a pointer to a Memory_Block plus two low-order flags.
cotto_work Tagged pointers are fine. Blatant mislabelling, not so much. 17:23
Paul_the_Greek Sp a change to that identifier would be in order? 17:24
chromatic If it's clearer, certainly. 17:25
cotto_work darbelo: ping 17:26
Paul_the_Greek Great, thanks. 17:29
dalek TT #1729 created by brianwisti++: Website needs an obvious link to parrot-users mailing list page 17:39
TT #1729: trac.parrot.org/parrot/ticket/1729
brianwisti1 Unless I just missed something right in front of my face. It's been known to happen. 17:41
cotto_work not being a robot does that to you 17:42
brianwisti True. Except for the poor robots with no faces. 17:43
chromatic Orual-bot?
cotto_work seen darbelo? 17:44
absentbot is absent
chromatic nopaste definitely lives up to its name at the moment 17:47
cotto_work hugs ilbot2 17:48
not all the bots have abandoned us
chromatic msg NotFound: this patch should improve hash thawing, but it gets the free_list wrong gist.github.com/510097 17:50
msg plobsing this patch should improve hash thawing, but it gets the free_list wrong gist.github.com/510097
cotto_work Message for NotFound not stored.
chromatic Oh wait, no purl. 17:51
Gah.
cotto_work Message for plobsing not stored.
chromatic Pity, because that looks like a 7% thawing speedup. 17:53
Perhaps more.
particle suggests... email 17:55
18:00 tcurtis joined
mikehh who deal with dear purl, and why did she go on strike 18:13
deals
Chandon Anyone know why lo_var_ptr gets manipulated by do_1_sub_pragma in packfile.c? 18:15
chromatic So as not to trace the C stack inappropriately?
Chandon chromatic: That's the implication, but wouldn't not changing it just scan a little more stack maybe? 18:17
chromatic Right, and I see no harm in scanning more stack.
That might even find otherwise non-anchored GCables. 18:18
(There exist some GC related bugs in PBC creation and thawing)
Chandon Excellent. Now when I break it in my branch, at least I'm not crazy for that reason.
Coke minor update to www.parrot.org/ 18:19
Docs menu is now Users/Docs
brianwisti: fixed, thanks! 18:20
I think hachi's server died and is being resurrected.
brianwisti Coke: Saw the email alert. Thanks!
Coke brianwisti: we could probably stand to put more links on the Users page. 18:21
18:22 jevin joined
Coke ARGH. why do we have www.parrot.org/languages and trac.parrot.org/parrot/wiki/Languages ?? 18:22
atrodo One's a lot prettier than the other? 18:23
brianwisti The latter is definitely more informative.
Coke I can't do this right now, but if you open a ticket, I can do it later: 18:26
update the languages page on the main page to highlight only a few languages. have a link to the wiki for the full on list. 18:27
cotto_work which languages, and how often will the page need to be updated (or how quickly will the information go stale)?
brianwisti Probably evaluate the most recently active. Stuff that you could probably build if you had a fresh Parrot installation. 18:28
Coke cotto_work: it is ALWAYS stale ;)
but that page should probably highlight rakudo and lua.
which are the most interesting/complete/showcase languages.
cotto_work probably squaak too 18:29
Coke at the least, rakudo.
squaak is merely pedagogical. put it on the users page.
dalek TT #1729 closed by coke++: Website needs an obvious link to parrot-users mailing list page
TT #1729: trac.parrot.org/parrot/ticket/1729
Coke s/merely// 18:30
brianwisti Squaak may be for educational purposes only, but it's still an actively developed language compared to many that are on the list now. 18:32
Coke yes, but that's not the point of that page. 18:33
brianwisti fair enough :)
Coke the point of the page on www.parrot.org is, IMO, to advertise who is successfully using parrot to target languages. putting our toy on there is actually harmful, IMO. 18:34
(but putting it on the "how to use parrot" page is super awesome, and I'll do that.)
18:41 tommyd joined
dalek TT #1730 created by brianwisti++: Languages page on Website needs updating 18:46
TT #1730: trac.parrot.org/parrot/ticket/1730
18:59 brianwisti1 joined
darbelo cotto_work: pong 19:00
cotto_work darbelo: Buffer_bufrefcountptr is confusing. Its name doesn't seem to match the way it's used. 19:01
svn blames you for being the last one to modify it in pobj.h, so I'm hoping you can clarify
example: INTVAL * const buffer_flags = Buffer_bufrefcountptr(d); 19:03
darbelo It was a pointer to a refcount a long time ago, back when buffers were refcounted. It stopped being that way some time before I came along, but it hasn't been renamed.
It's a tagged pointer now, IIRC.
cotto_work that's what appeared to be the case 19:04
darbelo A flag for 'This biffer is shared' and another for 'Please don't move this buffer'.
cotto_work Is it internal enough that no users should be touching it?
darbelo It's not internal enought to warrand a misleading name.
cotto_work I'm thinking whether it'll require a deprecation cycle to change or not. 19:05
darbelo It's a C macro for poking at the internal layout of our buffers. 19:06
If you need to poke that deep into our storage model, you are probably doing it wrong.
cotto_work sounds like a yes
as in, no deprecation needed
which I guess would actually actually be a "no" 19:07
darbelo OTOH, we can easily keep both the wrong *and* the correct name for essentially no cost.
cotto_work true
could you change that now or should we make a ticket? 19:08
cotto_work keeps wanting to msg people, but can't
19:08 particle joined 19:09 lucian joined
darbelo I think a ticket gives more of a chance for review. Prevent embarrasing "Oh, sorry you were using that?" moments and all that. 19:09
cotto_work We love our users, even if they're doing it wrong. 19:10
brianwisti1 I love my users, because I'm usually the one doing it wrong. 19:11
19:21 particle left
cotto_work darbelo: what new name would you give it? 19:21
darbelo Buffer_memblockptr() is the only thing I can come up with now. And maybe a Buffer_flags() alias, but I'm not too sure it'd be useful. 19:27
cotto_work Give it sufficient thought. I can file a tt (or Paul_the_Greek if he's around) once you have a good name. 19:29
19:29 Paul_the_Greek joined
cotto_work or you can. We have options. 19:29
speak of the greek...
atrodo That was magical cotto_work. How'd you do that? 19:30
Paul_the_Greek Hey folks. I just submitted a ticket. Is there a protocol for requesting a review of it, or do people look at it "automatically"?
Uh oh, I've been spoken of.
cotto_work Either he has a bot monitoring #parrot or it was coincidence.
Paul_the_Greek I vote coincidence.
darbelo cotto_work: Asking bacek is probably a good idea too, since he's the last one (back during the immutable strings refactor) to change the Buffer and string layout. 19:31
cotto_work bacek, ping
Paul_the_Greek Do I need to request a review of my ticket, or just let it happen? 19:32
cotto_work Paul_the_Greek: it'll happen. Normally dalek would notify us, though he seems to be down atm. 19:33
or not
darbelo dalek: status?
Not very talkative. 19:34
But then, we're inferior and must be exterminated. Hardly worth talking to. 19:35
dalek TT #1731 created by Paul C. Anagnostopoulos++: Assumption made about buffer header alignment 19:37
TT #1731: trac.parrot.org/parrot/ticket/1731
19:51 lucian joined
Coke Paul_the_Greek: ĪµĻ…Ļ‡Ī±ĻĪ¹ĻƒĻ„ĻŽ ! 19:51
Paul_the_Greek You're quite welcome. 19:52
Coke \\o/ . o O ( google translate ftw.)
Greek I never learned any of.
Paul_the_Greek I don't know much. My parents didn't teach it to me when I was a kid.
Coke HA! I just realized my language studies are like parrot's.
I spend a few years here, a few weeks there, and still only speak english. =- 19:53
cotto_work Paul_the_Greek: do you intend on fixing the ticket yourself?
Paul_the_Greek I thought someone should review it first. It's a bit of a change, but perhaps it's not worth worrying about, and so not disturbing the system. 19:54
The same issue occurs in many places. 19:55
If we don't change it, though, it is worth a big comment somewhere.
cotto_work Consistency is desirable, as is making our assumptions explicit. 19:56
dukeleto Just in case y'all haven't seen this: try.rakudo.org/shell
Paul_the_Greek Perhaps I should come up with a proposal for the fix and post it in the ticket. Then I could come back here and ask for review? 19:57
cotto_work +1
Paul_the_Greek I think the problem occurs in about a dozen places.
+1 ? 19:58
chromatic Are you thinking "Let's define BUFFER_HEADER_SIZE and use it consistently"?
tcurtis Paul_the_Greek: +1 is an indication of support.
darbelo Paul_the_Greek: It's not the header itself that's being skipped over there, but the flags (and pointer) at the beggining of the buffer.
Coke where is the try source? 19:59
ww
Paul_the_Greek Ah, I hadn't seen +1 before.
Sorry, I'm calling that the buffer header (as opposed to the buffer descriptor). 20:00
The buffer header may be larger than one pointer, so subtracting sizeof(void *) doesn't do the trick.
chromatic: I don't think there is one consistent buffer header size. 20:01
It depends on the alignment requested for the buffer.
darbelo It's also one of the places where we assume sizeof (INTVAL) == sizeof (void *) 20:02
20:02 tadzik left
cotto_work which need to be killed with fire 20:03
Paul_the_Greek I think that ALIGNED_STRING_SIZE and aligned_mem() need to cooperate a bit more.
Yes, I think the Buffer macros do assume that. 20:04
I also note a BUFFER_ALIGN_1 that is never used. 20:05
cotto_work Paul_the_Greek: for future reference, please be sure to stick around for a while after asking a question. I was about to answer a previous question of yours when you left. 20:06
Paul_the_Greek Oh, sorry. Will do. 20:07
cotto_work The owner of a ticket is generally the one who's responsible for fixing it. 20:08
Paul_the_Greek Okay, then after I finish working on the documentation, I'll tackle this issue. 20:09
Do y'all think it's worth reworking the Memory Internals developer doc after I finish updating all the comments? It's sadly out-of-date.
Ping. 20:14
cotto_work you usually want to ping a specific person
not everyone can answer every question 20:15
Paul_the_Greek I was just checking to see if I was still connected. Every now and then I just poof away.
cotto_work fun times
20:26 smash joined
cotto_work feels like he's looking at a dating site for cows 20:35
Coke html5-- 20:36
atrodo Coke> ENOPURL 20:37
Coke atrodo--
atrodo I would normally be sad... 20:38
20:44 bluescreen joined
Paul_the_Greek Once I submit a patch file, is it okay to submit a second one that is cumulative? 20:47
That doesn't seem right.
Coke if it's the same ticket, you can replace the original if you like, or you can add a new one. no real protocol, just do what makes sense for that ticket. 20:48
cotto_work Just indicate what's what.
Paul_the_Greek I promise I have an SVN book on the way. 20:49
cotto_work Have you used git at all?
chromatic svnbook.red-bean.com/ should suffice
Paul_the_Greek No, sorry. I'm a newbie at this distributed source control thing. 20:50
I'm used to a system where you checkout a file and then you own it; no one else can touch it. Old school.
cotto_work ok
Paul_the_Greek So what stops every change I ever make from accumulating in the modified status list? 20:51
Coke that's not version control, it's NFS.
cotto_work as much as we like to bash on svn, it's not that bad
20:51 tommyd left
Coke cotto_work: ORLY? 20:51
I know several people who prefer CVS. =-)
chromatic One advantage to Git (for the record) is that every developer can have a complete local repository full of local branches.
Paul_the_Greek It makes sense for these two sets of changes to be cumulative, but what do I do when I start working on something else? 20:52
20:52 cotto_work2 joined
cotto_work2 Coke: you known some odd people. 20:53
(or perhaps ones who have very different requirements from Parrot)
tcurtis Paul_the_Greek: you wish we were using git already so you could be working on it in a local branch. :) Also, git-svn might help.
chromatic Paul_the_Greek, that's one of the advantages of Git over SVN. With Git you can make your own local branches and switch between them. 20:54
Paul_the_Greek Ah, I see. I should give it a look.
But meanwhile ... is there a solution with SVN?
chromatic Either separate checkouts for each feature, or manual patch juggling. 20:55
20:55 purl joined
cotto_work2 botsnack 20:55
purl :)
Paul_the_Greek So once I'm done with this, I can re-checkout the entire system and that will clear the statuses?
cotto_work2 That's not necessary. You can do svn revert -R . and it'll nuke any local changes 20:56
chromatic If you check out the project into a separate directory, you'll have a separate working copy.
Paul_the_Greek Don't want to revert, because I want my changes when I move on to another area. 20:57
cotto_work We can make a branch for you and apply patches to it. 20:58
depending on how big the changes are
svn isn't great for what you want to do
Paul_the_Greek Yes, I see that.
darbelo
.oO(Or we could give him a commit bit...)
20:59
Paul_the_Greek What happens if you apply a patch and then try to apply a second one with the same changes?
cotto_work we have to have a couple patches and a #ps first
patch will complain
Paul_the_Greek Can I tell from looking at a ticket whether an attached patch file has been applied to the system?
cotto_work only by reading the comments 21:00
Paul_the_Greek Plus I can look at the New Patch report.
Okay, I'll replace my first patch file with this new one, so no cumulative confusion. 21:01
Then I'll look into git.
cotto_work This'll all be nicer after the git migration.
(Don't worry. There are lots of people here happy to help a git newbie.)
Paul_the_Greek Does anyone have an opinion on the usefulness of updating the "Memory Internals" developer doc? 21:02
chromatic I'd refer to an updated version occasionally, if it were current.
cotto_work We should do *something* with it. Out-of-date docs aren't fun to deal with.
If you're interested in learning that part of Parrot, updating docs is a great way to do it. 21:03
Coke out of date docs should be updated or destroyed.
So says Chip, so say we all. 21:04
Paul_the_Greek I've just gone through pobj.h and gc_private.h and updated/enhanced all the comments, so I'm in a good position to rework the document.
Coke purl, botsnack.
purl :)
cotto_work go for it then!
Paul_the_Greek I'll bring the document with me to the beach and hack away.
darbelo Paul_the_Greek++ 21:05
purl: karma Paul_the_Greek
purl paul_the_greek has karma of 1
darbelo Paul_the_Greek++
cotto_work msg khairul I find your lack of blog posts disturbing.
purl Message for khairul stored.
chromatic Paul_the_Greek, see trac.parrot.org/parrot/wiki/git-svn-tutorial for an overview of using Git with Parrot.
It may be overwhelming at first. That's normal. 21:06
21:06 perlite joined
cotto_work especially since you're also learning svn 21:06
Paul_the_Greek Hey, I 1-clicked an SVN book. Might as well do the same for Git. 21:07
cotto_work Do you live at the beach or is it a weekend trip? 21:10
Paul_the_Greek Two weeks in a house on the beach in Rhode Island. 21:11
cotto_work want
Paul_the_Greek The problem is that every year it takes me longer to get back into work mode when I return. 21:12
Soon I'll retire. Then I can really whack on Parrot.
21:18 cognominal joined 21:25 wagle joined 21:26 hercynium joined
dalek rrot: r48331 | Chandon++ | branches/gsoc_threads (19 files):
[gsoc_threads] Infrastructure for multiple (IO) threads per interp.
22:13
rrot: r48332 | Chandon++ | branches/gsoc_threads (30 files):
[gsoc_threads] Merge from trunk.
22:29
22:36 simcop2387 joined 22:40 TonyC joined 23:04 ruoso joined 23:05 Austin joined 23:10 Austin_Hastings joined 23:12 AndyA joined
cotto_work coke, where did that "Rakudo Club" nopaste come from? 23:22
23:23 lucian joined 23:25 kid51 joined
Chandon It turns out that 0 == 8589934592 when I forget that sizeof(INTVAL) may not equal sizeof(int). 23:48
23:59 Psyche^ joined