Camelia, the Perl 6 bug

IRC log for #parrot, 2010-03-30

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 bacek May be next year...
00:12 Coke msg Infinoid http://blogs.perl.org/users/coke/2010/0​3/appsvnbinarysearch-is-going-away.html - there goes my only CPAN module!
00:12 purl Message for infinoid stored.
00:17 darbelo Coke: ping
00:20 Coke pong
00:20 Whiteknight Tene: ping
00:20 Tene Whiteknight: pong
00:20 Whiteknight Tene: can you take a look at TT #1455?
00:21 darbelo I've been *way* out fo the loop this week. What's the status on include_dynpmc_makefile ?
00:21 Whiteknight I think that one can get closed easy by somebody who knows wha they are talking about
00:21 Tene Whiteknight: I can look at it a bit right now.
00:22 Tene Whiteknight: Yes, that looks reasonable and easy.  I'll first want to investigate if birthtime is used by other task stuff, but I expect an easy resolution.
00:23 Tene I don't know when I'll be able to look at it, though.  I'm moving across country later this week.
00:23 * Tene AFK, driving home.
00:23 Whiteknight ok, take your time
00:23 Whiteknight where are you moving from/to?
00:25 Coke darbelo: no changes.
00:25 purl no changes is probably why i ask :)
00:26 dalek TT #1517 closed by coke++: Comparing Rational PMC to Integer PMC with == blows up
00:26 dalek TT #1517: http://trac.parrot.org/parrot/ticket/1517
00:28 Tene Whiteknight: SLC -> sfbay
00:29 dukeleto Tene: congrats!
00:29 darbelo Saw you msg about not going fancy with deps. Does that mean that I should just try to add them manually until the depchecker is happy?
00:29 Tene dukeleto: thanks
00:29 darbelo happy depchecker => merge time!
00:29 treed I like how everyone is like "Yay, you're getting out of Utah!"
00:30 dukeleto Tene: i am not saying that SFbay is a cool place (because Portland is better), but congrats on the new job ;)
00:31 dukeleto Tene: what kind of stuff will you be doing?
00:31 Tene dukeleto: We were also looking at portland.  If/when sfbay turns out to not be right anymore, portland might be next.
00:31 Tene sysadmin, for the same company treed is working for now.
00:32 dukeleto Tene: sweet.
00:33 Tene Okay, really leaving now.  Bye.
00:34 dalek parrot: r45291 | coke++ | trunk (2 files):
00:34 dalek parrot: Fix think-o in Rational comparison logic.
00:34 dalek parrot: Resolve TT #1517
00:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45291/
00:35 dukeleto Coke++ # thanks for taking care of that rational pmc bug, i didn't get a change to test the patch
00:37 Austin Laugh.
00:38 Austin I just read that the Utah state legislature has recently passed a law that will permit Utahns, who register with the government and buy an approved and licensed barrel, to start legally collecting and saving rainwater.
00:41 darbelo It's *illegal* to collect rainwater? WTF?
00:41 Austin Not any more?
00:42 * darbelo adheres to the 'If it falls on you from the sky you can keep it.' school of thought.
00:42 Whiteknight stick it to all those rainwater bootleggers
00:56 payload joined #parrot
00:57 Infinoid Coke: Cool.  Thanks for inspiring me to write that!
01:02 eiro_ joined #parrot
01:03 lucian joined #parrot
01:16 dalek TT #1533 created by tcurtis++: Typos and inaccuracies in documentation comments of string bitwise ...
01:16 dalek TT #1533: http://trac.parrot.org/parrot/ticket/1533
01:19 Whiteknight I almost pursue a contract position with the wikimedia foundation in SF
01:23 dalek parrot: r45292 | mikehh++ | trunk/src/pmc/parrotthread.pmc:
01:23 dalek parrot: fix codetest failure - assert args - src/pmc/parrotthread.pmc
01:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45292/
01:23 dalek parrot: r45293 | mikehh++ | trunk/src/pmc/packfile.pmc:
01:23 dalek parrot: fix codetest failure - assert args - src/pmc/packfile.pmc
01:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45293/
01:23 dalek parrot: r45294 | mikehh++ | trunk/src/pmc/orderedhash.pmc:
01:23 dalek parrot: fix codetest failure - assert args - src/pmc/orderedhash.pmc
01:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45294/
01:24 dalek parrot: r45295 | mikehh++ | trunk/src/pmc/imageio.pmc:
01:24 dalek parrot: fix codetest failure - assert args - src/pmc/imageio.pmc
01:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45295/
01:31 Coke ahhh, verbose stuff in build is NOT my fault. whee.
01:31 eiro_ joined #parrot
01:32 Whiteknight tcurtis++ # Thanks for the patch in TT #1533
01:33 dalek TT #1533 closed by whiteknight++: Typos and inaccuracies in documentation comments of string bitwise ...
01:33 dalek TT #1533: http://trac.parrot.org/parrot/ticket/1533
01:37 eiro_ joined #parrot
01:39 Coke seen kid51?
01:39 purl kid51 was last seen on #parrot 1 days, 1 minutes and 52 seconds ago, saying: dukeleto:  Can you comment on http://trac.parrot.org/par​rot/ticket/1504#comment:6 ?  Thanks.  [Mar 29 01:37:52 2010]
01:40 dalek parrot: r45296 | whiteknight++ | trunk/src/string/api.c:
01:40 dalek parrot: [TT #1533] apply patch from tcurtis++
01:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45296/
01:40 dalek parrot: r45297 | coke++ | trunk (47 files):
01:40 dalek parrot: Eliminate 'vtable method'. It's a vtable, or a vtable function.
01:40 dalek parrot: This resolves TT #487
01:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45297/
01:40 dalek parrot: r45298 | mikehh++ | trunk/src/pmc/packfile.pmc:
01:40 dalek parrot: g++ does not like the extra const
01:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45298/
01:44 eiro_ joined #parrot
01:44 Coke msg kid51 I assigned you TT #1457; I don't see why that config test is failing.
01:44 purl Message for kid51 stored.
01:45 Coke do we still have any svk users?
01:45 Coke or has everyone moved on to git-svn?
01:47 chromatic Want to deprecate svk support?
01:48 Coke it never was awesome anyway. And no, I wish to just kill it outright.
01:48 Coke not like it's part of the API.
01:49 chromatic No objection.
01:49 dalek TT #487 closed by coke++: [CAGE] 'vtable method' needs to go away
01:49 dalek TT #487: http://trac.parrot.org/parrot/ticket/487
01:51 dukeleto +1 to deprecating svk support
01:52 chromatic compilers/imcc/symreg.c:885: warning: ignoring return value of ‘strtol’, declared with attribute warn_unused_result
01:52 chromatic compilers/imcc/symreg.c:888: warning: ignoring return value of ‘strtoul’, declared with attribute warn_unused_result
01:55 sorear I seem to have run into an especially nasty destruction order problem.
01:56 eiro joined #parrot
01:56 sorear I keep handles from Parrot into Perl.  When these are destroyed, they drop references on Perl-side objects
01:56 sorear when this happens, the Perl-side objects are recursively destroyed
01:56 sorear if it hits a handle in the *other* direction, it calls gc_unregister
01:56 dalek parrot: r45299 | mikehh++ | trunk/docs/pdds/pdd17_pmc.pod:
01:56 dalek parrot: maximum line length in a pod (pdd) is 78 characters
01:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45299/
01:56 dalek parrot: r45300 | mikehh++ | trunk/docs/pdds/pdd09_gc.pod:
01:56 dalek parrot: maximum line length in a pod (pdd) is 78 characters and trailing spaces
01:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45300/
01:56 sorear thus, my destroy VTABLEs can call Parrot_pmc_gc_unregister
01:56 dalek parrot: r45301 | coke++ | trunk/t/distro/file_metadata.t:
01:56 dalek parrot: Don't run these tests in a tarball.
01:56 sorear BUT
01:56 dalek parrot: Resolves TT #1451
01:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45301/
01:56 dalek parrot: r45302 | mikehh++ | trunk/docs/pdds/draft/pdd06_pasm.pod:
01:57 dalek parrot: maximum line length in a pod (pdd) is 78 characters
01:57 purl i already had it that way, dalek.
01:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45302/
01:57 dalek parrot: r45303 | mikehh++ | trunk/docs/pdds/draft/pdd08_keys.pod:
01:57 dalek parrot: maximum line length in a pod (pdd) is 78 characters
01:57 purl i already had it that way, dalek.
01:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45303/
01:57 sorear during global destruction, the global gc registry is DESTROYED FIRST!
01:57 sorear crashes ensue
01:57 sorear what should I do differently?
01:58 chromatic What's the problem?
01:58 purl the problem is that WikiDoc doesn't use Pod formatting codes, and I don't like to have two sets of formatting codes.
01:59 sorear chromatic: Segfault on exit.
01:59 sorear My last 10 lines were an analysis
02:00 chromatic What problem are you trying to solve that this is a problem?
02:01 eiro joined #parrot
02:01 sorear chromatic: Core dumps are littering my test tree
02:02 sorear I suppose I could also fix it with ulimit, but that feels improper
02:02 chromatic What are you trying to do *with Parrot* that the destruction order of the GC registry is a problem?
02:03 sorear Allow passing callbacks from Parrot to outside code
02:03 sorear these callbacks need to hold references to the underlying Sub PMCs
02:04 sorear if the callback thunk objects are destroyed after the GC registry, crash
02:04 chromatic Unregister them before you destroy the interpreter.
02:06 dalek TT #1451 closed by coke++: t/distro/file_metadata.t should not be run from distro tarball.
02:06 dalek TT #1451: http://trac.parrot.org/parrot/ticket/1451
02:06 dalek TT #1534 created by coke++: Remove svk developer support
02:06 dalek TT #1534: http://trac.parrot.org/parrot/ticket/1534
02:07 mikehh t/pmc/parrotobject.t - Failed test:  4 in corevm/coretest - looks like the wording has changed
02:08 sorear chromatic: but the interpreter is destroyed from a destroy vtable, by the time I destroy the interpreter the address registry is already gone!
02:08 sorear or are you suggesting "Due to Parrot limitations, it is not possible for the interpreter to be automatically destroyed.  You must call the destroy method before allowing the interpreter to become garbage."
02:09 chromatic How are you destroying the interpreter?
02:09 cotto joined #parrot
02:10 payload joined #parrot
02:10 sorear PL_exit_flags |= PERL_EXIT_DESTRUCT_END; perl_destruct(), perl_free()
02:11 chromatic How are you destroying the *parrot* interpreter?
02:12 sorear parrot-nqp self destructs at EOF
02:13 dalek parrot: r45304 | chromatic++ | trunk/compilers/imcc (2 files):
02:13 dalek parrot: [IMCC] Removed more "method" from vtable mentions.
02:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45304/
02:13 sorear the problem also occurs if an unhandled exception is thrown
02:13 sorear (actually, this is the normal case)
02:13 sorear (for crashes)
02:14 chromatic What's in charge, Perl 5 or Parrot?  What program do you run?  Are you embedding Perl 5 in Parrot or Parrot in Perl 5?
02:14 sorear I am embedding Perl 5 in Parrot.
02:14 eiro_ joined #parrot
02:14 sorear Parrot is in charge.
02:14 sorear I start Parrot from the command line.
02:15 chromatic Where's your backtrace?
02:19 sorear http://pastie.org/894614
02:19 sorear exactly what happens is variable
02:20 sorear depending on exactly how I die
02:21 tcurtis joined #parrot
02:22 chromatic I don't see anything related to Parrot's GC registry in that backtrace.
02:22 sorear earlier, I had Parrot_pmc_gc_unregister -> VTABLE_delete_keyed -> (void(*)(PARROT_INTERP, ...)) 0x80000
02:22 sorear however, the backtrace system reacted to the bad jump by dropping the gc_unregister frame
02:23 Coke chromatic: curses. I didn't think to search for v-table.
02:23 Coke thanks for getting the stragglers.
02:25 Patterner joined #parrot
02:25 sorear chromatic: You seem to be trying to analyze my problem.  What was inadequate in my analysis which requires you to duplicate it?
02:25 chromatic I have no idea what you're doing nor why it's a problem.
02:26 chromatic I understand that something crashes when your program ends.
02:26 chromatic I think you think this has something to do with Parrot's GC registry.
02:26 chromatic From what you've said, I have no idea how that could be.
02:29 sorear I'm calling Parrot_pmc_gc_unregister in a destroy VTABLE
02:29 chromatic Which destroy?
02:30 sorear Parrot's destroy, on the P5Interpreter and P5SV PMCs
02:31 chromatic When do you destroy these PMCs?
02:32 sorear The Parrot garbage collector destroys them automatically at process exit.
02:32 chromatic Then don't unregister them!
02:33 sorear I'm not unregistering them.
02:33 sorear They hold references to /other/ things
02:33 sorear and need to drop the references on destroy
02:34 sorear but since the referential structure is opaque to me, I can't just use mark
02:34 sorear also, I seem to have broken something else
02:35 chromatic During global destruction, when everything gets destroyed, you don't need to unregister PMCs which are going to get destroyed anyway.
02:35 sorear How do I know when global destruction is happening?
02:35 janus joined #parrot
02:35 sorear If the object gets destroyed /before/ global destruction, it can and must unregister
02:35 chromatic Then you're going to have to figure out if you ever destroy these things before global destruction.
02:36 chromatic Parrot_gc_register() means that it's *your* responsibility to figure out the lifespan of these objects.
02:36 sorear I actually have two kinds of objects.
02:37 eiro_ joined #parrot
02:37 sorear Objects which are gc_registered, and objects which aren't.
02:37 sorear These are _not the same_
02:37 sorear If the latter group objects are destroyed before global destruction, they need to unregister the former group objects.
02:39 chromatic Why?
02:40 sorear Because otherwise the former group objects will stick around until the process exits.
02:41 sorear Which would be bad.
02:41 chromatic How would that be bad?
02:41 sorear It would leak memory.
02:41 sorear Is that bad?
02:42 chromatic Given that I don't know what they are, why they're registered with the GC, or what you're trying to do, I have no idea.
02:42 chromatic Nor can I imagine why you would have something not registered with the GC which has to manage the registration of something else which is registered with the GC.
02:44 sorear other way around - GCed objects control manual objects
02:44 sorear however I seem to have discovered a new crash
03:01 cotto joined #parrot
03:14 bubaflub joined #parrot
03:20 snarkyboojum joined #parrot
03:30 Coke ->
03:39 lucian joined #parrot
03:52 Andy joined #parrot
04:15 contingencyplan joined #parrot
04:26 cotto joined #parrot
05:25 fperrad joined #parrot
05:34 sorear hmm, I need to understand the Parrot MULTI vtable mechanism
05:36 payload joined #parrot
05:41 payload1 joined #parrot
05:44 payload joined #parrot
05:44 payload1 joined #parrot
05:46 payload joined #parrot
05:47 payload1 joined #parrot
05:47 cotto joined #parrot
05:47 payload joined #parrot
05:48 eternaleye joined #parrot
05:52 chromatic http://trac.parrot.org/parrot/w​iki/FixingConstantSTRINGCaching
05:52 chromatic http://trac.parrot.org/parrot/​wiki/FixingPIRVtableOverrides
05:53 chromatic Takers welcome.
06:08 uniejo joined #parrot
06:08 sorear purl: msg Infinoid - dalek is down again
06:08 purl Message for infinoid stored.
06:12 bacek joined #parrot
06:24 cotto I smell a merge.
06:26 cotto no dalek.  I guess that explains it.
06:32 cotto Wow this is slow.
06:32 cotto svn--
06:47 cotto svn--
06:47 bacek chromatic, can you create "WorldDominationPlan" on wiki? I'll take it.
06:47 cotto Can you deal with steps labeled "???"?
06:48 chromatic You wouldn't believe it if I told you.
06:48 bacek "???" in "Profit plan", not "Wold domination"
06:48 chromatic Just for fun, someone read src/string/api.c line 146.  I'll wait.
06:48 bacek chromatic, do tell!
06:49 chromatic Think about it for just a moment and you'll see the joke.
06:49 bacek Parrot_gc_allocate_string_storage(interp, &for_alloc, Buffer_buflen(s)); ?
06:49 chromatic Now read the comment just above it.
06:50 bacek I don't get it...
06:51 bacek apart that it's not "dummy" storage.
06:51 chromatic Suppose you have, for example, a COW STRING header which refers to a token in a 90kb source code file.
06:51 chromatic Suppose you have another such header which refers to the next token.
06:51 chromatic They're COW.  That's fun.  We don't have to have copies of that 90kb STRING in memory, because both headers can refer to different places in that buffer.
06:51 chromatic Until you want to concatenate them together.
06:52 bacek holy...
06:52 chromatic Now you have *three* copies of that buffer.
06:53 bacek Why don't use strlen for allocation???
06:53 chromatic ... and they each care about a token's worth of storage space within that buffer.
06:53 chromatic I'm trying that now.
06:54 bacek Do we have student for "immutable string GSoC"?
06:54 cotto We had one that emailed the list earlier today.
06:54 cotto tcurtis iirc
06:54 bacek Did we put "inplace string functions" into DEPRECATED.pod?
06:57 bacek Catch him, lock in room and don't let him go until after finishing!
07:02 cotto svn-- screwed up a merge
07:02 cotto bacek, if you're bored, feel free to sync profiling_testing with trunk and merge it back in
07:02 cotto if not, I'll take care of it later
07:02 cotto night
07:06 bacek night cotto
07:06 bacek I'll try to merge it.
07:07 bacek Erm... Do we have test failures now???
07:07 cognominal joined #parrot
07:08 chromatic What are you seeing?
07:08 bacek segfault in build_key
07:08 bacek t/compilers/imcc/syn/regression_18
07:09 sorear So, if the COW string implementation sucks so much, why do you want to keep it?
07:09 bacek g++ build
07:09 bacek sorear, no one want to keep it.
07:10 sorear I thought I heard chromatic saying he wanted immutable strings AND cow strings
07:11 chromatic And then I said "But not the W part of COW".
07:11 bacek and "shared buffer"
07:11 bacek not "COW strings"
07:11 chromatic Yeah, I should say "shared buffers" instead.
07:12 sorear I thought being sharable was the point of making strings immutable
07:12 bacek if buffer is immutable we don't have to clone it on "write"
07:13 bacek but substrings can use same buffer
07:15 dalek joined #parrot
07:16 bacek O, dalek!
07:20 sorear Hurray!
07:20 bacek doesn't happen on gcc build. Interesting
07:21 iblechbot joined #parrot
07:26 Coke bacek: I just added that test.
07:26 Coke didn't segf. for me.
07:26 Coke (presumably due to gcc)
07:27 Coke -> zzz
07:40 bacek chromatic, ping?
07:40 bacek $2 = {flags = 196864, _bufstart = 0x8055964, _buflen = 12,
07:40 bacek strstart = 0x805596b "Foo", bufused = 3, strlen = 3, hashval = 2690967049,
07:40 bacek encoding = 0x8073dc8, charset = 0x8073f88}
07:41 chromatic pong
07:41 bacek can you explain content of this string?
07:42 bacek strstart is in 7 bytes after _bufstart
07:42 bacek but bufused is only 3
07:42 bacek Did I miss something about our strings?
07:43 chromatic Buffers are padded.  They also contain a reference count at the very start.
07:43 chromatic Buffers can also be larger than the contents of the string to give them room to grow.
07:44 bacek yes
07:46 bacek but why bufused is only 3? Not 7+3?
07:46 chromatic I don't know.
07:47 bacek Me too...
07:49 chromatic This should be a one-line change, but I'm having weird failures.
07:50 dalek parrot: r45311 | chromatic++ | trunk/src/gc/alloc_resources.c:
07:51 dalek parrot: [GC] Made buffer_location() debugging function work with not-so-recent context
07:51 dalek parrot: changes.
07:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45311/
07:51 dalek parrot: r45312 | chromatic++ | trunk/src/gc (2 files):
07:51 dalek parrot: [GC] Tidied code; no functional changes.
07:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45312/
07:51 dalek parrot: r45313 | chromatic++ | trunk/src/hash.c:
07:51 dalek parrot: [hash] Avoided reinitializing callocated memory to NULL/0.
07:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45313/
07:51 dalek parrot: r45314 | chromatic++ | trunk/src/packfile.c:
07:51 dalek parrot: [src] Removed an unnecessary calloc().
07:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45314/
08:07 nopaste "chromatic" at 173.50.130.127 pasted "bacek: this should work, but I can't figure out why it causes errors" (30 lines) at http://nopaste.snit.ch/20132
08:09 bacek chromatic, strlen is in characters, not bytes.
08:10 chromatic Hm, how long has it been characters?
08:10 payload joined #parrot
08:12 bacek chromatic, no idea.
08:15 nopaste "bacek" at 114.73.158.218 pasted "chromatic: this is my version" (47 lines) at http://nopaste.snit.ch/20133
08:16 bacek chromatic, my version passed coretest. Failed in PGE....
08:16 bacek (gdb) p *src
08:16 bacek $11 = {flags = 196864, _bufstart = 0xb66f41b0, _buflen = 200,
08:16 bacek strstart = 0xb66f41b0 "        R211:  # quant 0..Inf greedy\n        R211_repeat:\n          push ustack, pos\n          local_branch cstack, R213\n          pos = pop ustack\n          if cutmark != 0 goto fail\n          goto %"...,
08:16 bacek bufused = 202, strlen = 202, hashval = 0, encoding = 0x8073dc8,
08:16 bacek charset = 0x8073f88}
08:16 bacek it's in Parrot_str_replace.
08:16 bacek bufused > buflen
08:16 sorear purl: msg Infinoid - ignore last message - I only *thought* feather was running.  Though having back karma would be nice ;)
08:16 purl Message for infinoid stored.
08:17 chromatic Yeah, that's where I had trouble too.
08:28 mikehh joined #parrot
08:28 AndyA joined #parrot
08:30 bacek chromatic, looks like str_replace do WRONG THINGS...
08:32 chromatic I'm not surprised.
08:36 bacek chromatic, src/string/api.c:1409
08:36 bacek this is THE problem.
08:36 bacek write_COW shrink string. But all calculations already made.
08:37 chromatic Makes sense.
08:37 bacek yes, moving write_COW before making calculations works
08:38 chromatic All tests pass, everything builds?
08:38 nopaste "bacek" at 114.73.158.218 pasted "chromatic: working version (so far)" (63 lines) at http://nopaste.snit.ch/20134
08:39 bacek running make test
08:39 bacek everything builds.
08:40 bacek all tests passed.
08:41 chromatic Let's get it committed and see what happens with Rakudo.
08:41 bacek deal
08:41 * moritz will try
08:43 bacek done
08:43 bacek r45315
08:46 chromatic That looks much better.
08:47 sorear How much does it cut the memory use?
08:47 chromatic It's topped out at 233MB RSS, 253 virtual.
08:47 sorear \o/
08:47 sorear time to install Rakudo
08:47 sorear chromatic++
08:48 bacek chromatic, we can make it slightly faster if we will allocate +8 bytes.
08:48 bacek Due CodeString.emit (which usually replace 2 bytes with 3-8)
08:48 ascent joined #parrot
08:53 chromatic It never topped 256 MB for me.
08:54 sorear just started the rakudo build
08:56 bacek compiling Actions.pm causes GC run about 2 times per second..
08:56 dalek parrot: r45315 | bacek++ | trunk/src/string/api.c:
08:56 dalek parrot: Allocate exact amount of memory in Parrot_str_write_COW. chromatic++ for pointing out on this non-sense
08:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45315/
08:57 bacek Much better.
08:57 purl much better is probably to design each table in isolation with the table name providing context
08:57 bacek StringPool size topped on 6 megs. Instead of 230!
08:59 chromatic How long has that bug been there, I wonder.
09:00 moritz max virtual memory while compiling the setting seemed to be around 612M... and takes forever
09:00 moritz 9 minutes and still running
09:04 moritz spectesting now
09:04 bacek moritz, how long it usually takes?
09:04 moritz don't know
09:04 moritz never measured it
09:07 JimmyZ joined #parrot
09:08 sorear moritz: P64?
09:08 sorear Compiling Rakudo took 12 hours and 500MB for me, immediately before the PCC merge
09:09 sorear This is the first time I've actually been able to use my computer during a rakudo build
09:10 moritz Austin: amd64
09:10 moritz erm, I meant sorear
09:11 sorear the setting compiler has been running for 6 minutes and is only up to 260MiB
09:12 moritz it took about 11.5 minutes on my machine
09:13 nopaste "bacek" at 114.73.158.218 pasted "moritz, can you try this patch?" (18 lines) at http://nopaste.snit.ch/20135
09:14 moritz bacek: will do after the current spectest run
09:14 bacek moritz, ok
09:29 gaz joined #parrot
09:34 JimmyZ_ joined #parrot
09:35 sorear and the compile is FINISHED
09:36 moritz the spectestrun too
09:36 moritz All tests successful.
09:36 purl Are you feeling lucky?
09:36 sorear chromatic++
09:49 cotto joined #parrot
10:01 dalek parrot: r45316 | mikehh++ | trunk/src/pmc/nci.pmc:
10:01 dalek parrot: fix codetest failure - assert args - src/pmc/nci.pmc
10:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45316/
10:12 moritz bacek: doesn't seem to be any faster with your patch
10:12 bacek moritz, sigh...
10:13 moritz haven't done real measurements
10:13 moritz but still takes 15min to build rakudo with the patch
10:15 sorear For me, it went from 12 hours to 45 minutes.
10:15 sorear With no thrashing
10:15 bacek sorear, what kind of computer do you have???
10:15 sorear One as old as Parrot itself
10:16 bacek yak...
10:16 bacek P2 with 256 megs?
10:16 sorear P4 with 384
10:16 sorear it has been upgraded one or more times
10:17 dalek parrot: r45317 | mikehh++ | trunk/src/gc/alloc_resources.c:
10:17 dalek parrot: fix codetest failure - function documentation - changed parameters
10:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45317/
10:17 dalek parrot: r45318 | mikehh++ | trunk/src/gc/gc_ms.c:
10:17 dalek parrot: add void * cast to get g++ to build - src/gc/gc_ms.c
10:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45318/
10:18 cognominal joined #parrot
10:26 he_ joined #parrot
10:35 clinton joined #parrot
10:42 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32914), fulltest) at r45318 - Ubuntu 9.10 amd64 (g++ with --optimize)
10:48 payload joined #parrot
10:49 moritz purl: seen dukeleto
10:49 purl dukeleto was last seen on #parrot 8 hours, 57 minutes and 12 seconds ago, saying: +1 to deprecating svk support
10:49 bacek joined #parrot
11:03 cotto joined #parrot
11:16 riffraff joined #parrot
11:36 cotto joined #parrot
11:47 cognominal joined #parrot
12:01 whiteknight joined #parrot
12:02 bacek msg chromatic http://piumarta.com/software/tree/tree-1.0/ - header only, AVL tree implementation. MIT licence. Can we use for constant STRINGs cache?
12:02 purl Message for chromatic stored.
12:05 ruoso joined #parrot
12:07 bluescreen joined #parrot
12:08 cotto joined #parrot
12:16 whiteknight good morning parrot
12:23 szbalint Look what you did! :)
12:31 bluescreen joined #parrot
12:31 whiteknight joined #parrot
12:31 clinton joined #parrot
12:31 gaz joined #parrot
12:31 mikehh joined #parrot
12:31 fperrad joined #parrot
12:31 snarkyboojum joined #parrot
12:31 eiro_ joined #parrot
12:31 particle joined #parrot
12:31 he joined #parrot
12:31 dngor joined #parrot
12:31 atrodo joined #parrot
12:31 slavorgn joined #parrot
12:31 Coke joined #parrot
12:31 darbelo joined #parrot
12:31 Hunger joined #parrot
12:31 plobsing joined #parrot
12:31 solarion joined #parrot
12:31 hicx174 joined #parrot
12:31 nopaste joined #parrot
12:31 rt7 joined #parrot
12:31 sri joined #parrot
12:31 TimToady joined #parrot
12:31 arnsholt joined #parrot
12:31 Khisanth joined #parrot
12:31 GeJ joined #parrot
12:31 betterworld joined #parrot
12:31 preflex joined #parrot
12:31 NotFound joined #parrot
12:31 knewt joined #parrot
12:31 baest joined #parrot
12:31 athomason joined #parrot
12:31 treed joined #parrot
12:31 Infinoid joined #parrot
12:31 Tene joined #parrot
12:31 bacek_at_work joined #parrot
12:31 confound joined #parrot
12:31 KatrinaTheLamia joined #parrot
12:31 purl joined #parrot
12:37 iblechbot joined #parrot
12:41 riffraff joined #parrot
12:44 whiteknight I hate netsplits
12:51 arnsholt In PMCs, when is init() called, and when is init_pmc() called?
13:07 cotto joined #parrot
13:09 patspam joined #parrot
13:15 particle init_pmc is called when a pmc is passed to init
13:15 arnsholt That would make perfect sense, of course
13:20 particle :)
13:22 PerlJam joined #parrot
13:23 cognominal joined #parrot
13:33 payload joined #parrot
13:39 payload joined #parrot
13:40 khairul joined #parrot
13:53 perlpilot joined #parrot
13:59 * whiteknight hates IIS
13:59 whiteknight there are no saving graces
13:59 atrodo doesn't everyone?
13:59 purl I know I do.
13:59 whiteknight I've got a website on here, I go to http://localhost, and it tells me that it cannot connect to the remote computer and I should check my TCP settings
14:07 atrodo i mean, how do you get that wrong?
14:07 atrodo (as in how does IIS get it wrong)
14:11 Coke does the loopback address work?
14:11 Mokurai joined #parrot
14:12 Mokurai1 joined #parrot
14:13 arnsholt Is there a "reference" PMC?
14:13 Coke I have a bet as to where that COW allocation scheme came from.
14:15 whiteknight arnsholt: sort of, but not really
14:16 whiteknight there is a Pointer type, I think, but it can't really be used the way you think
14:16 whiteknight or, at least I haven't ever seen it used that way
14:16 arnsholt Dang
14:17 arnsholt I have some very clever Perl code I'd like to borrow for my Prolog, but it's so clever I can't quite figure out how to implement it =)
14:18 bubaflub joined #parrot
14:20 atrodo PBP is very wise when it talks about being clever for exactly that reason
14:21 arnsholt True. But it's clever in the sense "oooh, that makes it so much easier" =)
14:21 whiteknight arnsholt: PMCs are references already, if that's what you're wondering about
14:22 arnsholt whiteknight: My starting point is here: http://www.perlmonks.org/?node_id=193649
14:22 Mokurai1 joined #parrot
14:22 arnsholt The bit I'm stumped on is how to do the "reference to a reference to a value" bit (\\$value)
14:22 arnsholt About halfway down
14:27 whiteknight arnsholt: you may need to create a PMCReference PM
14:27 whiteknight PMC
14:27 whiteknight or, you could try to "fix" Pointer to do what you want, but I think it's pretty special-purpose
14:27 whiteknight I'm not sure if there's anything else that would really do i
14:28 arnsholt Yeah, it's looking like it
14:28 arnsholt I've fiddled around with NQP a bit, but it doesn't look very doable that way either
14:35 whiteknight maybe a better idea would be a general RegisterReference PMC, which would store the current context and register number
14:35 whiteknight then you could reference ints, nums, strings, and PMCs with a flag
14:36 whiteknight ...not something you particularly need, but something that would be generally beneficial
14:36 whiteknight A take_reference opcode could package it up correctly
14:38 * Coke wishes he kept better benchmarks.
14:39 Austin arnsholt: What's the point of the double-indirection?
14:40 Coke Austin: I added [lset] to partcl.
14:41 NotFound whiteknight: not a bad idea, it can be useful to build a way to invoke vtable overrides without an inner runloop.
14:41 Austin Symbol table hackery?
14:41 Coke I am tempted to just wire a bunch more stuff in by putting in Q:PIR {} blocks from the original partcl and changing the bare minimum to get it to work, then going back over and doing the PIR->NQP conversion.
14:41 arnsholt Austin: It lets you alter what the objects point to, as well as altering the value of whatever they're pointing at
14:42 Austin arnsholt: Sure, but what key capability does that give you?
14:42 Austin arnsholt: I ask because having a namespace, and having a pmc, are basically two levels of indirection. So if two is all you need, you can probably win that way.
14:42 whiteknight NotFound: how so?
14:42 Austin Just pass the variable names around as references.
14:43 arnsholt Say you unify two variables, X and Y, and neither has been unified with a specific value
14:43 theory joined #parrot
14:43 Austin my $x := pir::new__PS('Undef');  $y := $x
14:44 Austin (Although in fact undef is the default, so I could just say:   my $x ; my $y := $x;
14:44 arnsholt The you let them reference a common ref to undef
14:44 Austin Right
14:45 Austin So now $x =:= $y
14:45 whiteknight Austin: regardless of the specific use in this case, the ability to take proper references to register locations would be a good thing
14:45 NotFound whiteknight: the vtable calls from  opcodes usually use registers for out values, so in order to call a sub some placeholder is needed. That was the problem I encountered when thinking about ways to avoid the inner runloop in that cases.
14:45 arnsholt And when Y is unified with Z you set $$Y = $Z, and that way $$$X will be the same as $$$Y and $$$Z
14:45 whiteknight NotFound: the biggest problem with inner runloops is that the return values are needed in the C code immediately
14:45 Austin Whiteknight: I sort of agree, but you're skating perilously close to the edge of Parrot there - the whole "there are no addresses" thing.
14:45 * arnsholt goes looking at =:=
14:46 whiteknight there are plenty of addresses, but that's hardly the point
14:46 NotFound whiteknight: in general yes, but in the simpler usages from opcodes a shortcut can be highly useful.
14:46 Austin arnsholt: =:= is perl6 for "issame", which is a reference-equality
14:46 arnsholt 'cept feather is down. =:= is "do these two point at the same container", right?
14:47 arnsholt Thanks.
14:47 whiteknight NotFound: okay, yes. I agree. If a return value isn't needed immediately, it can be a great shortcut to pass in a RegisterReference for those cases and avoid the inner runloop
14:47 whiteknight would need a way to specify that a return was supposed to be passed in a reference PMC, such as a new modifier in the signature
14:47 whiteknight but that's all doable
14:47 arnsholt Austin: $y := $x; is fine. But how from that, how do I propagate a change to $y back to $x?
14:47 Austin Okay, that last won't work. (x/y/z)
14:48 arnsholt Yeah. That's what has me stumped
14:49 Austin Okay.
14:50 NotFound whiteknight: there is still the problem of knowing from the vtable function if it's called from the opcode, or alternatively the opcode checking that the pmc has an override without slowing down the common case.
14:52 whiteknight NotFound: yeah. Unfortunately I really don't think we are able to do it yet. It's a good long-term goal
14:59 NotFound whiteknight: chaining some more ideas we'll eventually reach an implementable way.
15:02 whiteknight yes
15:05 cotto joined #parrot
15:08 nopaste "Austin" at 68.37.47.32 pasted "Var for arnsholt (in Kakapo)" (51 lines) at http://nopaste.snit.ch/20136
15:10 arnsholt Austin: Oooh. Nice one. Thanks!
15:14 Austin arnsholt: I think the only real kakapo dependency is going to lie in "auto_accessors" and in the presumption that you will initialize using .new(:value(x)). You should be able to work around both of those if you want to.
15:14 bluescreen joined #parrot
15:16 arnsholt What exactly is kakapo?
15:16 Austin runtime library for nqp
15:16 arnsholt Ah, right
15:17 payload joined #parrot
15:18 arnsholt Many thanks again for the help.
15:18 cottoo joined #parrot
15:20 davidfetter joined #parrot
15:21 cotto karma svn
15:21 purl svn has karma of -21
15:21 cotto way too high
15:21 davidfetter svn--
15:21 davidfetter karma svn
15:21 purl svn has karma of -22
15:22 davidfetter karma davidfetter
15:22 purl davidfetter has karma of 8
15:22 davidfetter who knew?
15:25 cotto svn--
15:25 cotto merge alread.
15:28 davidfetter as linus pointed out, branching is pretty trivial
15:29 davidfetter perhaps we could go to git or hg...
15:29 cotto Last time I asked the reply was that we could consider it after 2.3
15:29 davidfetter how long after 2.3?
15:30 cotto the big blocker being mature trac-git integration
15:30 cotto I assume shortly after it's released.
15:30 cotto but that's what I wanted to hear, so the intent may have been otherwise
15:38 szbalint cotto: what's not mature enough about trac-git ?
15:40 cotto The last change was 2 years ago.
15:42 cotto Gah.  Something needs to die.  This is the second time I've tried to sync my branch with trunk and ended up with something that doesn't build.
15:43 szbalint http://trac-hacks.org/wiki/GitPlugin ?
15:44 cotto "As this is for now just a proof of concept implementation, it has quite some deficiencies, some of which exist as tickets already:"
15:45 cotto fails to inspire confidence
15:45 szbalint true
15:45 szbalint and it's kept in svn ;-)
15:45 cotto though at this point I wouldn't mind getting a commit bit for it and fixing stuff myself.
15:47 cotto svn--
15:47 cotto svn--
15:47 cotto svn--
15:47 cotto svn--
15:47 cotto svn--
15:47 cotto svn--
15:47 atrodo karma svn
15:47 purl svn has karma of -29
15:48 kthakore svn--
15:48 szbalint svn--
15:48 kthakore there
15:48 kthakore I help
15:48 szbalint just for good measure.
15:48 perlpilot cotto: just revive the switch-to-git idea and see what happens  (maybe it'll stick this time)
15:49 davidfetter are there other bug trackers that play nicer with git? if so, do they have a migration path from trac?
15:49 kthakore davidfetter: I use git with trac?
15:49 kthakore davidfetter: it works great
15:49 davidfetter how?
15:49 kthakore davidfetter: see http://sdlperl.ath.cx/
15:50 bubaflub we just migrated from RT to trac, i'm pretty sure "they" don't want to migrate again
15:50 kthakore davidfetter: there is a git plugin
15:50 kthakore bubaflub: yeah no need to
15:50 kthakore davidfetter: I can help out
15:50 davidfetter cotto, i think we've found a su^H^Hvolunteer :)
15:50 kthakore davidfetter: NOOOOOooOOOoooOoooo
15:51 kthakore davidfetter: sure ... I help ....
15:51 cotto Yeah.  Migrating from trac is a non-starter.
15:51 kthakore cotto: you don't need to migrate from trac
15:51 bubaflub cotto, not sure if this is helpful, but you may want to try your merge with git-svn
15:51 cotto Also, it's important that we be able to keep the svn repo around to avoid breaking old links.
15:51 kthakore cotto: git works tih trac
15:52 kthakore cotto: well git-svn repo on your trac should keep links
15:52 szbalint kthakore: which plugin are you using?
15:53 kthakore szbalint: TracGit 0.11.02
15:53 * davidfetter wonders whether he should pester szbalint about pl/parrot atm
15:53 szbalint davidfetter: /me looks @ the other window
15:53 kthakore szbalint: http://trac-hacks.org/wiki/GitPlugin
15:54 kthakore cotto: when you do a git-svn clone it keeps rNNNN in the commit lines
15:54 kthakore cotto: so trac should be able to link to it
15:54 kthakore cotto: but I forget how I did it at work
15:54 kthakore cotto: we had a plugin for link to anything
15:55 kthakore cotto: then we set commit messages as a linkable so if you linked to r3444 it linked to git commit message "r3444 ... blah
15:57 GodFather joined #parrot
15:57 cotto That's an option.  Could you add that to http://trac.parrot.org/parrot/wiki/GitTransition
15:57 cotto ?
15:58 particle 4.08-3.25
15:58 purl 0.83
15:58 kthakore cotto: sure
15:59 kthakore cotto: I might have to hack the pluign for the link it seems ... that plugin was a in house propiertary
16:00 cotto It's 'merged' though someone with more patience will have to take care of svn properties.
16:01 bubaflub cotto, i can go through and set the props
16:01 cotto thanks.
16:01 cotto I need to go do something else.  Work sounds nice.
16:02 cotto bubaflub++
16:02 bubaflub is it on a branch or is it hitting trunk?
16:06 kthakore cotto: updated the wiki
16:08 kthakore svn?
16:08 purl hmmm... svn is If dbic/cat SVN is down, ping anyone with an @shadow.cat cloak (preferably apeiron, epitaph, or mst)
16:08 kthakore gah
16:08 kthakore where is the url?
16:10 theory joined #parrot
16:13 lucian joined #parrot
16:25 hercynium joined #parrot
16:26 Coke free karma? go ahead and apply the patches from 1457 and close the ticket.
16:26 cotto_work bubaflub, it's in trunk now
16:26 bubaflub cotto_work: ok, i'm fixing codingstd and svn:props now
16:27 cotto_work much appreciated
16:27 cotto_work It's nice to get that in trunk, even if getting it there was a stupid hack.
16:27 bubaflub glad i could help
16:28 bubaflub Coke: want me to apply the patch and try a clean build?  i've got some spare time right now
16:28 Coke bubaflub: have fun. =-)
16:28 bubaflub Coke: both patches or just the latest one (modified_remove_cxx.diff)?
16:29 cotto joined #parrot
16:30 cotto_work when do we get dalek back?
16:30 bubaflub Coke: looks like only the modified one; i'm applying the patch and doing a clean build and make fulltest
16:30 particle cotto_work: when feather comes back?
16:30 cotto_work I guess that'd help.
16:30 Coke bubaflub: I haven't looked at the updated one - I'm not sure if he took my original patch and added the one deletion or not.
16:30 Coke checking...
16:31 bubaflub it appears so
16:31 Coke bubaflub: then sure, go for it. =-)
16:38 bubaflub Coke: i'm getting a build error with that patch - t/compilers/imcc/syn/regressions.t, test #18 "over long keys should not segfault (TT #641)"
16:38 bubaflub i'm not sure if it's on trunk as well, lemme check
16:39 bubaflub it appears to be on trunk as well
16:40 Coke bubaflub: you're using g++, aren't you.
16:41 Essobi joined #parrot
16:41 bubaflub Coke: hmmm, i though my system would use gcc but I'm probably wrong
16:41 Coke as a separate thing, you should probably TODO that dying test and re-open the TT. :|
16:41 bubaflub my makefile has "CC = gcc-4.2"
16:42 Coke I added it and closed the ticket, as it was not segfaulting for me.
16:42 bubaflub Coke: ok, i'll commit this patch, close that ticket, and re-open the other one
16:51 bubaflub Coke: done and done.
16:54 lucian joined #parrot
16:57 Coke bubaflub: danke.
16:57 Coke bubaflub++
17:01 darbelo joined #parrot
17:02 cotto_work hio darbelo
17:03 gaz joined #parrot
17:07 darbelo ohai
17:07 cotto_work you have some gsoc ambitions this year, don't you?
17:07 darbelo Yeah. I'm looking into NFG now.
17:07 whiteknight nice
17:08 whiteknight darbelo++
17:08 Coke NFG?
17:08 purl i guess NFG is No Fscking Good! or grapheme normalization form (see docs/pdds/draft/pdd28_character_sets.pod)
17:08 Coke botsnack
17:08 purl thanks Coke :)
17:08 whiteknight darbelo: if you're a good boy, we'll let you hack this summer in the real repo instead of having to create your own
17:08 purl thanks whiteknight :)
17:08 cotto_work lead botsnack
17:08 purl :)
17:09 darbelo botsmack
17:09 purl please!  another hit!  just one more.... *sigh*
17:09 whiteknight I think purl has a little S&M in him...
17:13 bubaflub i'm applying for GSoC this year as well, but haven't the foggiest idea what I should work on
17:14 darbelo Increasing the awesome. It's what we all do.
17:14 bubaflub i looked at the NFG and Immutable String ideas as well
17:14 whiteknight there are a lot of students interested in immutable strings
17:14 bubaflub yeah, i saw that on the list
17:15 bubaflub i've applied to some other projects this year
17:15 bubaflub and as i'm already slightly involved, i figured it be best not to apply for those so we can get the maximum number of new people in
17:15 kthakore whiteknight: ain't that nice
17:15 whiteknight ain't what nice?
17:15 NotFound whiteknight: TT #1430 done.
17:16 kthakore whiteknight: that many students for GSOC parrot
17:16 whiteknight NotFound++
17:16 kthakore whiteknight: we got 1 candidate and 3 maybes
17:16 whiteknight kthakore: for what project?
17:16 kthakore whiteknight: SDL_perl vis TPF
17:16 kthakore whiteknight: also we have started to get frozen bubble on CPAN :)
17:17 whiteknight frozen bubble?
17:17 purl well, frozen bubble is Just Fine, and OpenGL. or written in Perl
17:17 whiteknight oh, that game
17:17 whiteknight nice
17:17 kthakore whiteknight: yeah
17:17 kthakore whiteknight: and we have a very nice game to use right now too
17:17 kthakore whiteknight: http://yapgh.blogspot.com/#Spinner
17:17 whiteknight none of the students I have talked to so far have submitted proposals
17:17 kthakore whiteknight: so good days
17:18 kthakore whiteknight: we have one submitted I will have to review it though
17:18 whiteknight I see that
17:18 whiteknight nothing submitted for Parrot. That makes me sad :(
17:18 kthakore whiteknight: it is a neat idea no?
17:18 kthakore whiteknight: awww ... you will get there
17:19 kthakore whiteknight: parrot is teh awesome
17:19 whiteknight I wish I were still a student, I would apply ASAP
17:19 kthakore whiteknight: for parrot?
17:19 whiteknight of course!
17:19 kthakore or SDL_perl
17:19 kthakore oh ok
17:19 kthakore whiteknight: well duh
17:20 whiteknight and I would have to do something big and awesome too
17:20 PerlJam wk: you coudl do that anyway :)
17:20 kthakore whiteknight: I might 'seduce' some parrot people SDLparrot next year
17:20 kthakore PerlJam: true.
17:20 whiteknight SDLParrot would be very nice
17:20 whiteknight PerlJam: if I were a full-time student, I would have a lot more time
17:21 kthakore whiteknight: yup
17:21 kthakore whiteknight: it is comming ... slowly
17:21 kthakore whiteknight: I am designing some specs (which I am testing in perl 5 SDL)
17:21 kthakore right now
17:21 whiteknight nice!
17:21 whiteknight I am very excited to hear that
17:21 PerlJam all we need is for someone to win a multi-million dollar lottery and donate a large chunk of it to furthering parrot/perl
17:22 kthakore whiteknight: yeah ... I work on a lot of things
17:22 kthakore whiteknight: parrot needs a differnt approach to the bindings
17:22 Austin joined #parrot
17:22 whiteknight that does bring up a good question: What would I do if I were a GSoC student?
17:22 kthakore whiteknight: I tried direct access to a C memory chunk
17:22 whiteknight probably threads
17:23 kthakore whiteknight: THREAD!
17:23 kthakore whiteknight: oh yeah ... thanks
17:23 kthakore :)
17:23 whiteknight threads and callbacks are really important
17:23 kthakore yes
17:23 kthakore ...
17:24 kthakore whiteknight: and a way to access C memory directly
17:24 kthakore whiteknight: ala pack and substr
17:24 whiteknight yes
17:24 merlyn joined #parrot
17:24 kthakore whiteknight: I broke my brain trying it in perl5 (with some success)
17:24 whiteknight AIO is something I've wanted too, but threads are more important
17:24 bubaflub left #parrot
17:25 bubaflub joined #parrot
17:25 bubaflub left #parrot
17:25 merlyn if I had to summarize Perl6 status in three sentences, where would I get -those sentences?
17:25 NotFound C memory? What's that?
17:25 PerlJam merlyn: freenode #perl6
17:25 merlyn ahh, not here?
17:25 bubaflub joined #parrot
17:25 PerlJam probably not here
17:26 merlyn ok - heading there
17:26 kthakore NotFound: well it is a low level access to a void *
17:26 kthakore NotFound: so you can set your own format and write anything withouth having to do malloc copy free ... crap
17:27 kthakore NotFound: I want to use it for creating audio streams on the fly
17:27 kthakore NotFound: and edit pixels on the fly
17:28 NotFound kthakore: what are you talikng about? Free acces to memory from the VM?
17:28 whiteknight kthakore: would a data buffer PMC type be interesting to you?
17:28 whiteknight you put in a size, and get out an allocated buffer?
17:29 kthakore whiteknight: and when I write to it is it written straight into void * ?
17:29 kthakore whiteknight: I think you know what I mean ... I can't really explain ...
17:29 kthakore NotFound: ok I will try
17:30 kthakore NotFound: I have a struct called SDL_Surface in a C Lib
17:30 whiteknight kthakore: what I am envisioning, it would just be a raw void* buffer with the given size. You can write anything to it
17:30 kthakore NotFound: we use NCI to use it
17:30 kthakore whiteknight: yeah!
17:30 whiteknight basicaly it would just be a wrapper around malloc/realloc/free
17:30 kthakore whiteknight: but I want to write the SDL_Surface->pixels or char* stream
17:30 Austin_Hastings joined #parrot
17:30 kthakore whiteknight: no that is no good
17:30 whiteknight no good? why not?
17:31 kthakore whiteknight: that malloc defeats the whole point
17:31 kthakore whiteknight: are you familiar with piddles in PDL
17:31 whiteknight ...how else do you get the memory in the first place?
17:31 whiteknight no
17:31 kthakore whiteknight: ok well it is direct write access to a XS/C struct
17:31 whiteknight from PIR?
17:31 kthakore whiteknight: I would like that yes
17:32 kthakore whiteknight: ok ... maybe I can show you what I mean
17:32 whiteknight okay, so the struct is already allocated?
17:32 NotFound kthakore: UnmanagedStruct
17:32 purl UnmanagedStruct is just the first file that manifest the problem
17:32 whiteknight UnmanagedStruct could be made to work, though isn't pretty now
17:32 kthakore whiteknight: yeah
17:33 mberends joined #parrot
17:33 kthakore whiteknight: http://www.pygame.org/docs/ref/surfarray.html <--- pygame managed it
17:33 NotFound I think pretty and direct access to memory are not much compatible.
17:34 kthakore whiteknight: here is the closest I got in perl5 http://github.com/kthakore/SDL_perl/tr​ee/redesign/src/Core/object/Surface.xs
17:34 kthakore whiteknight: see the access to teh pixels
17:34 whiteknight okay, yeah
17:34 kthakore whiteknight: the performance is 30 to 40 times slower
17:34 kthakore whiteknight: Perl OpenGL has used a similar method
17:34 whiteknight ok
17:35 kthakore whiteknight: and their performance to C is 1.2 - 1.5 times
17:35 kthakore whiteknight: that is what I mean
17:35 kthakore ....
17:35 kthakore whiteknight: I have no clue how to even attempt this
17:35 whiteknight kthakore. Take a look at parrot-linear-algebra
17:35 whiteknight they are matrix types, but store data in raw buffers, which can be indexed
17:35 kthakore whiteknight: ruoso came up with a hack with pack and substr and some XS magic in src/Core/objects/AudioSpec.xs
17:36 kthakore whiteknight: ok
17:36 kthakore whiteknight: I will see
17:36 whiteknight if I add a set_pointer VTABLE, you would have that same access to any pointer you want
17:36 theory joined #parrot
17:37 kthakore whiteknight: oh! rlly? nice
17:37 kthakore whiteknight: but how can I get that access to a alalready allocated struct
17:37 kthakore ??
17:37 whiteknight it will take some work
17:38 dalek joined #parrot
17:38 kthakore I suspected as much
17:38 whiteknight but it's very possible
17:38 kthakore I have seen several implementation of this 'pattern?'
17:38 kthakore whiteknight: pygame, POGL, and PDL
17:39 whiteknight I tell you what: if you write up the interface you want to see, I will implment it
17:39 kthakore whiteknight: yay!
17:39 * kthakore huggles whiteknight
17:39 whiteknight :)
17:40 kthakore that will make parrotSDL fast enough to use from rakudo
17:40 kthakore :)
17:40 whiteknight I've got a few types I've been planning myself for working with memory too, so I can make a whole project out of it
17:41 kthakore whiteknight: once this and threads/callbacks work SDL WxWidgets and Ogre3d are a huge posibility to parrot
17:41 whiteknight very cool
17:41 kthakore whiteknight: give me a few days I will give you the idea
17:41 whiteknight threads and callbacks is a huge deal.
17:41 kthakore whiteknight: yea
17:41 whiteknight kthakore: no problem. Take your time, give me a good design!
17:42 kthakore whiteknight: I will try
17:42 kthakore whiteknight: I haven't had to design this much 'real stuff' since ... well ever
17:44 kthakore whiteknight: what format should I follow ... any design examples I can see?
17:44 whiteknight for a PMC type, your options are the vtable interface and methods
17:45 whiteknight methods are nice but can't do raw pointers
17:45 kthakore and? the raw pointers?
17:45 whiteknight some vtables do have raw pointers but are very inflexible
17:45 whiteknight check out src/vtable.tbl
17:45 kthakore ok
17:46 kthakore whiteknight: where is parrot's SVN url?
17:46 PerlJam https://svn.parrot.org/parrot/trunk
17:46 whiteknight PerlJam++
17:46 kthakore thaks
17:48 iblechbot joined #parrot
17:48 Coke parrot svn?
17:48 purl i think parrot svn is http://svn.perl.org/parrot/trunk
17:49 PerlJam parrot git?
17:49 purl it has been said that parrot git is http://repo.or.cz/w/parrot.git
17:52 ruoso kthakore, there's a question to be made before that...
17:52 ruoso is the parrot threading model defined already/
17:52 ruoso ?
17:52 kthakore ruoso: I am not defining threading
17:53 kthakore ruoso: I am talking about a piddle like vtable interface for direct memory access
17:53 ruoso ah... right... it's just because most of my XS code was motivated by threading...
17:53 ruoso so I assumed you were talking about it ;0
17:53 ruoso ;)
17:53 kthakore ruoso: no ... I was talking about that pack, substr hack
17:54 kthakore ruoso: that pack, substr is still a bit on the slow side in perl5
17:54 ruoso kthakore, parrot has a native buf8 type I think
17:54 Coke parrot git also http://github.com/leto/parrot
17:54 Coke parrot git is also http://github.com/leto/parrot
17:54 purl okay, Coke.
17:54 kthakore ruoso: but we need it for more than just buf8
17:54 dukeleto joined #parrot
17:54 kthakore dukeleto: !!
17:54 dukeleto 'ello
17:54 dukeleto kthakore: howdy
17:54 purl que tal, dukeleto.
17:54 bubaflub afternoon dukeleto
17:55 ruoso you need for each of the buffer types, which, I think, all have parrot types
17:55 dukeleto bubaflub: how goes it?
17:55 kthakore ruoso: nope not for custom pixel formats
17:55 kthakore dukeleto: question for you
17:55 kthakore dukeleto: for you git parrot did you init it with git svn clone?
17:55 bubaflub dukeleto: not too shabby, applied to some projects for GSoC last night; still thinking about what i should do with perl / parrot
17:56 dukeleto kthakore: yes
17:56 ruoso kthakore, I see.. maybe that's the point where you start writing parrot types for the missing sdl types ;)
17:56 kthakore dukeleto: how can we see the rXXXX in the commit logs
17:56 dukeleto me github mirror is not working right now.
17:56 whiteknight bubaflub: any ideas you've heard that caught your interest? Or, anything you want to ask about?
17:57 kthakore ruoso: yeah ... but malloc and so on ... is slow
17:57 dukeleto kthakore: what exactly are you asking?
17:57 whiteknight or, any systems that you enjoy, and would like to find a project?
17:57 kthakore dukeleto: ok when I do git svn clone ... parrotness
17:57 dalek parrot: r45325 | mikehh++ | trunk/MANIFEST.SKIP:
17:57 dalek parrot: regenerate MANIFEST.SKIP
17:57 bubaflub whiteknight: hmmmm... i am a math nerd
17:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45325/
17:57 kthakore dukeleto: I see r4352 = SHA1num
17:57 whiteknight bubaflub: GSL bindings are on the list
17:57 kthakore dukeleto: I want to go trough git and add the rXXX in to the commit of that SHA1num
17:58 bubaflub whiteknight: i'm not really familiar with GSL, i've really only used GMP before
17:58 bubaflub whiteknight: and i haven't done any NCI binding stuff so it'd be unfamiliar territory for me
17:58 whiteknight bubaflub: adding proper CBLAS support to parrot-linear-algebra would be very nice too, but that might be out of scope
17:58 bubaflub whiteknight: but if it'd be useful, i'd apply
17:58 whiteknight bubaflub: okay, we can find something better
17:59 bubaflub whiteknight: i was looking at the immutable strings and NFG, but since other people are going to apply i figure i'll hop over to something else
17:59 lucian joined #parrot
17:59 bubaflub whiteknight: the RTEMS stuff looks pretty cool, though i haven't done anything with embedded stuff
17:59 ruoso kthakore, well you probably have how to use the SDL buffer from the parrot type, just as I did with the SV*
17:59 whiteknight bubaflub: part of the point of GSoC is to introduce students to things they aren't familiar with :)
17:59 whiteknight the question is: what do you want to be familiar with next september?
18:00 bubaflub whiteknight: i might shoot for the GSL bindings then
18:00 dukeleto bubaflub: RTEMS will be a very cool project, I am friends with the rtems guys and they are very good people
18:00 kthakore ruoso: ok .. I don't think you are understanding
18:00 dukeleto bubaflub: the parrot+rtems project will probably be under the RTEMS org, i think
18:00 kthakore ruoso: have you see pygame's surfarray
18:00 whiteknight http://www.perlfoundation.org/pe​rl5/index.cgi?gsoc_2010_projects
18:00 bubaflub dukeleto: ok, i'll take a look at it
18:01 kthakore ruoso: or PDL piddle ?
18:01 dukeleto bubaflub: i suggest that you write an app for that, i can give you guidance
18:01 bubaflub whiteknight: reading it now
18:01 dukeleto bubaflub: they are in #rtems on freenode
18:01 whiteknight nice
18:01 kthakore ruoso: it gives high level write access to already allocated memory
18:01 whiteknight I don't think that's a complete list, really.
18:01 bubaflub dukeleto: yeah, i've got a few other apps out to other orgs as well, figure i'd cast my bread upon the waters
18:01 kthakore ruoso: so animations and sound changes don't require remalloc
18:01 dukeleto bubaflub: great idea!
18:01 ruoso kthakore, and that's precisely what I'm talking about
18:01 purl i guess talking about is "Yeah, you're alway talking and talking and talking. Shut up and code."
18:01 kthakore ruoso: makes them faster
18:01 kthakore ruoso: rlly?
18:01 ruoso yes
18:01 kthakore ruoso: ok show me how!
18:01 kthakore ruoso++
18:01 kthakore ruoso: yay
18:01 dukeleto kthakore: you want to do this in which repo?
18:02 bubaflub dukeleto: would converting the Perl 5 cryptographic libraries to use Math::Primaility count as a good GSoC idea?
18:02 ruoso you just need to write a Parrot type that accepts dealing with an already allocated memory
18:02 ruoso just like I did by setting the buffer pointer in the SV*
18:02 dukeleto bubaflub: yes, definitely
18:03 kthakore 5
18:03 whiteknight ruoso: so a buffer PMC type with a set_pointer vtable to take a pointer to an existing structure, and a variety of interface methods for interacting with it?
18:03 bubaflub dukeleto: cool.  i think i'll apply for the Parrot GSL bindings, the RTEMS port with the RTEMS people, and converting Perl 5 crypto to use Math::Primality
18:03 dukeleto bubaflub: proper scoping is important
18:03 ruoso whiteknight, just like that, yes
18:03 kthakore dukeleto: in a trac repo for git transistion (see the wiki)
18:03 bubaflub dukeleto: yeah, could get out of hand quick.  i also don't want to just force my way into someone else's module and say "Here, do this."
18:03 kthakore whiteknight: ok .. I am loss
18:03 whiteknight ruoso: easy-peasy. I could put that together quite quickly. any particular interfaces you want?
18:03 dukeleto kthakore: svn revs are already included. for example: http://github.com/leto/parrot/commit/2b​e277df93bd17178b4e6a59ee2756d64b6d29ba
18:04 ruoso whiteknight, Audio callback is a simple one
18:04 whiteknight Audio callback?
18:04 cotto_work #ps in 147
18:04 ruoso whiteknight, SDL audio, I mean
18:04 kthakore dukeleto: ok good
18:04 whiteknight I mean interfaces for the PMC
18:04 whiteknight I don't know any SDL
18:04 dukeleto kthakore: also see the "git svn find-rev" command
18:04 kthakore dukeleto: now I have to make to crawl the trac db to link rXXX links to thes things
18:05 kthakore dukeleto: yeah ... but ^^ that is the hard part
18:05 ruoso whiteknight, ah... in the case of SDL Audio, accessing it as an array of bytes would be quite helpful already
18:05 joeri joined #parrot
18:05 whiteknight ruoso: for a given buffer, can we say that it is always accessed as an array of bytes, or always as something else?
18:05 whiteknight because switching would be difficult, but if indexed accesses were always the same size it would be easier
18:06 ruoso whiteknight, once we configure it, it is static
18:06 ruoso I mean
18:06 whiteknight so I could make multiple types: ByteBuffer, ShortBuffer, IntBuffer, LongBuffer, etc
18:06 ruoso yes
18:06 whiteknight okay, perfect
18:06 whiteknight this will be easy
18:06 kthakore whiteknight: yay!
18:06 ruoso that can be the base for the pixel buffer
18:06 ruoso which might have a different set of types as whell
18:06 kthakore ruoso: ^^ can you show me how that works?
18:07 whiteknight what datatype does the pixel use?
18:07 tewk whiteknight, how about sized types instead u8 u16 u32 u64
18:07 ruoso kthakore knows that better
18:07 kthakore whiteknight: [U|S]in[8|16|32]
18:07 kthakore U is unsigned
18:07 whiteknight yeah, that's fine
18:07 kthakore S is signed
18:07 kthakore ok great!
18:07 kthakore :)
18:07 whiteknight U/S won't really matter on assign
18:07 ruoso kthakore, ah... so it's the same... no problem at all
18:07 kthakore ok
18:07 whiteknight we just won't do arithmetic in place
18:07 kthakore sure ...
18:07 dukeleto kthakore: what exactly are you trying to do?
18:07 kthakore dukeleto: for git?
18:07 whiteknight you do your own damn arithmetic :)
18:08 cotto_work Coke, eor in #ps?
18:08 kthakore dukeleto: see teh git integration wiki
18:08 tewk short int long is a bad naming convention that is inconsistent across plagforms
18:08 kthakore cotto_work: what is that link again?
18:08 kthakore dukeleto: hold on getting link
18:08 cotto_work http://trac.parrot.org/parrot/wiki/GitTransition
18:08 kthakore dukeleto: ^^
18:08 ruoso but when dealing with SDL we need to support threading...
18:09 ruoso which gets back to my first question
18:09 ruoso was parrot threading model defined already?
18:09 kthakore ruoso: I donno
18:09 kthakore ruoso: haven't seen threads in parrot yet
18:10 Coke cotto_work: ayup
18:10 tewk We should move to git before SoC starts.
18:10 kthakore tewk: help me then
18:10 * tewk ducks and runs for cover.
18:12 bubaflub though it's not two-months work, i'm tempted to propose migrating to git as a GSoC project
18:12 mberends joined #parrot
18:13 PerlJam bubaflub: it might be 2 months work to make everyone happy.
18:13 kthakore PerlJam: for sure
18:13 purl like totally!
18:13 bubaflub PerlJam: hah.  yeah.  doesn't involve a lot of parrot coding or compiler guts
18:13 gaz joined #parrot
18:13 bubaflub but i hear ya
18:13 cotto_work The best thing that anyone could do to help us move to git would be to setup up a read-only trac site with a clone of the svn repo and dukeleto's git tree to show that they can coexist well.
18:14 cotto_work ideally it'd be a clone of the existing Parrot trac site + git, but I'm not sure if it'd be easy to get that.
18:18 Coke cotto_work: let me (or someone) know when to involve OSU OSL.
18:20 mberends when building Parrot on Windows XP from source and using Configure.pl, is there a workaround to use a --prefix=directory name that includes spaces? The standard --prefix="C:\Documents and Settings\Username" loses its quotes and collapses to "C:\Documents" :-(
18:20 dukeleto cotto_work: +1 to that idea. can you make a TT to make sure that idea doesn't get lost in the ether?
18:21 dukeleto mberends: that issue has come up before, methinks
18:21 cotto_work dukeleto, doing so now
18:21 dukeleto mberends: it may have gotten re-broken in the recent Makefile refactorings
18:21 mberends dukeleto: ah. Searching on trac was not easy.
18:22 Coke mberends: I believe there is a ticket.
18:22 Coke Easy enough for someone on non-windows to check.
18:23 mberends Coke: great. I'd like to append results from Rakudo to the ticket.
18:24 Coke #930
18:24 mberends :-) thanks Coke
18:24 Coke note quite, but it's the same genre.
18:24 Coke *not
18:24 Coke (also #888)
18:24 lucian joined #parrot
18:26 NotFound Using a prefix with a space in linux, parrot builds but fails to install.
18:26 mberends yes, on Windows XP also
18:26 NotFound Fails while compiling the installable executables.
18:29 dukeleto NotFound: i have noticed that "make install" doesn't do much error checking
18:29 mberends here it trips up during tools/dev/install_files.pl
18:29 dukeleto NotFound: if i give it an invalid --prefix, it seems to succeed but doesn't
18:29 NotFound dukeleto: Invalid in what sense?
18:30 dukeleto NotFound: for instance, if you do --prefix=/foo/bar/baz and /foo doesn't exists, it does not create the hierarchy
18:30 mberends the first space in the prefix terminates the name
18:31 cotto_work Coke, can you produce a dump of the trac site if someone needs it or does that need to involve osuosl?
18:31 dukeleto NotFound: do you consider that a bug? at the least it should bail early and say "directory /foo does not exist"
18:32 NotFound dukeleto: I tempted to consider a bug using make for install.
18:32 lucian joined #parrot
18:33 NotFound Or even better, using make.
18:34 mberends joined #parrot
18:38 atrodo I have finally gotten my compiler and fortran grammer to work well enough together to parse 13% of the fortran 77 test suite i found
18:38 atrodo So I need to start thinking about how to produce bytecode.  I've thought about either emitting or embedding something, but I'm not sure which way to go.
18:39 cotto_work http://trac.parrot.org/parrot/ticket/1535 (trac+git demo site)
18:46 dalek TT #1535 created by cotto++: trac+git demo site
18:46 dalek TT #1535: http://trac.parrot.org/parrot/ticket/1535
18:49 dukeleto atrodo: sounds cool. is this code anywhere publicly viewable?
18:49 dukeleto yay, dalek gives TT URL! dalek++
18:49 atrodo not right now.  I was going to yesterday, but realized my license was out of order
18:51 lucian cotto_work: if there are so many git objections, why not try hg?
18:52 cotto_work lucian, they're almost all addressed
18:52 cotto_work most would apply to any vcs switch
18:52 lucian cotto_work: great then. looking forward to a dvcs
18:52 dukeleto dcvs++
18:53 lucian having used git first, hg second and only recently svn, svn seems so wrong
18:53 cotto_work Having used svn, svn seems so wrong.
18:54 arnsholt I've never had any real troubles with svn. Might be related to not using it for any kind of big projects though
18:54 lucian cotto_work: btw, some objections (like #7) would be negated on hg
18:55 lucian cotto_work: which is why i mentioned it
18:56 lucian i found this interesting http://joelonsoftware.com/items/2010/03/17.html
18:56 darbelo having used *cvs* svn still looks wrong.
18:57 lucian cotto_work: #5 is also a non-issue in hg, since history is sacred
18:57 purl okay, lucian.
18:57 lucian purl: what?
18:57 purl i haven't a clue, lucian
18:58 darbelo #5 ?
18:58 purl rumour has it #5 is fine, except, as DrForr said, at the end. or a non-issue in hg, since history is sacred
18:58 lucian darbelo: http://trac.parrot.org/parrot/wiki/GitObjections
18:58 darbelo I know. I was wondering what purl had for #5 :)
18:59 lucian ah
18:59 bacek joined #parrot
19:00 dmagnus joined #parrot
19:07 theory joined #parrot
19:12 KatrinaTheLamia joined #parrot
19:12 athomason joined #parrot
19:12 treed joined #parrot
19:12 Infinoid joined #parrot
19:12 Tene joined #parrot
19:12 bacek_at_work joined #parrot
19:12 confound joined #parrot
19:12 baest joined #parrot
19:12 GeJ joined #parrot
19:12 Khisanth joined #parrot
19:12 arnsholt joined #parrot
19:12 sri joined #parrot
19:12 nopaste joined #parrot
19:12 Hunger joined #parrot
19:12 Coke joined #parrot
19:12 dngor joined #parrot
19:12 he joined #parrot
19:12 particle joined #parrot
19:12 eiro_ joined #parrot
19:12 snarkyboojum joined #parrot
19:12 fperrad joined #parrot
19:12 clinton joined #parrot
19:12 whiteknight joined #parrot
19:12 davidfetter joined #parrot
19:12 bubaflub joined #parrot
19:12 dukeleto joined #parrot
19:12 lucian joined #parrot
19:12 chromatic joined #parrot
19:13 bubaflub left #parrot
19:13 bubaflub joined #parrot
19:15 Andy joined #parrot
19:22 Coke const Andy *const work.
19:23 Andy ?
19:23 Coke hurm. why does tools/dev/install_files.pl know what install defaults are?
19:24 Coke Andy: const nothing just const saying hey const.
19:24 bubaflub haha
19:24 Coke shouldn't those defaults come from config?
19:24 Andy One thing about hte headerizer makes me sad
19:24 Andy It doesn't recognize funcs that being with a { at the end of the line, instead of starting at the beginning of the next.
19:24 Andy but I don't want to dig into that now.
19:25 Coke ISTR we had a coding standard that it should be that way, but could be mistaken.
19:25 Andy that could be.
19:25 Andy many many instances do not.
19:28 allison joined #parrot
19:34 AndyA joined #parrot
19:37 dukeleto did i miss #ps?
19:38 Coke abou 50m to go.
19:40 dukeleto Coke++ thanks
19:43 * Coke points at the latest groklaw.
19:44 bacek morning
19:44 bacek I'll miss todays #ps
19:46 cotto_work #ps will miss you
19:46 cotto_work your report seems to be truncated
19:47 bacek yak...
19:48 bacek "fixed"
19:50 bacek chromatic, did you see my msg about AVL?
19:50 chromatic Yes, I was considering using that header as well.
19:51 chromatic allison's not a fan of mixing licenses in code, but I know of no legal or ethical reason why we couldn't do so.
19:51 bacek ok, I'll try to hack something (modulo RL issues)
19:51 chromatic Besides, there aren't many ways to implement an algorithm or a data structure like that without copying code almost verbatim.
19:51 bacek indeed.
19:52 bacek But we can replace this implementation with own wheel (theoretically, in future)
19:52 chromatic We can update the code to our coding standards, but we should keep the author's name and link and license information and note that we based our version on his.
19:52 moritz chromatic: if you're looking for things to do that help rakudo - somehow all line numbers in error messages are screwed up in rakudo, and jonathan++ thinks it's a parrot bug
19:52 allison it depends on what the license is
19:52 bacek MIT
19:53 allison that's fine then, more permissive than Artistic
19:53 Coke moritz: I had talked to jnthn briefly about that. Having a test case or 2 would go a long way.
19:53 allison but, we would have to note the license exception for Parrot
19:53 Coke (even if it's in .p6)
19:54 chromatic japhb had a test case a while back.  I dared him to give me some information.
19:54 allison (it's Artistic, except for...)
19:54 allison honestly, some days I think Parrot should just switch to BSD
19:54 chromatic It's only that specific file that would have any interesting license information.
19:55 allison chromatic: aye, but anyone using Parrot needs notice that not all files are under the same license
19:55 particle allison: you're the expert.
19:55 allison chromatic: in case they want to do something that fits with the terms of one license but not another
19:56 allison chromatic: like, for example, the Artistic license lets you take the code under the GPL
19:56 particle we should discuss license changes with the board, then open up our recommendations to the community for response
19:56 allison chromatic: MIT doesn't
19:56 chromatic Sure it does.
19:57 allison chromatic: it requires the copyright notice and license to be included in all modified versions
19:58 chromatic And it expressly grants permission for recipients to sublicense.
19:58 allison chromatic: Artistic allows you to strip off the older license and ship it as *only* GPL
19:59 allison chromatic: not that anyone would want to, but licensing is all about what permissions you grant and what restrictions you hold
19:59 Coke eh. if we have a mechanism for documenting license & copyright, I'm not worried.
19:59 allison particle: Apache is another good choice, close to Artistic, but much, much simpler
19:59 Coke even if we have to add exceptions. I don't want to jump through hoops on the coding side if it's only going to save a few packages a small amount of trouble.
19:59 Coke *packagers
20:00 allison particle: but then, I'm not sure licensing is a good investment of time at the moment
20:00 allison Coke: it's not about packagers, it's about users
20:00 lucian joined #parrot
20:00 allison Coke: so really, the people to ask if they care if we include MIT code is ActiveState, BBC, etc
20:00 particle allison: agreed, unless it'd driving a code change required for R*
20:01 Coke allison: ah. I think our users would, in general, prefer a production with multiple licenses than no product.
20:01 Coke ... damn.
20:01 Coke a *product with...
20:01 chromatic Yes, but *there aren't that many ways to write an AVL tree*.
20:01 chromatic I can think of... well, one.
20:02 bacek chromatic, at least two :)
20:02 darbelo But there are limitless ways to name the variables!
20:02 allison and plenty of way to write balancing binary search trees
20:02 chromatic They're all going to look the same.
20:03 allison chromatic: well, not line-for-line identical code
20:03 allison but similar
20:03 allison a more important question is who wrote it
20:04 bacek in this case: Copyright (c) 2005 Ian Piumarta
20:04 NotFound to blame him!
20:04 bacek http://piumarta.com/software/tree/tree-1.0/
20:04 allison then email him, let him know our intended use, and see if he minds
20:05 chromatic That's silly.
20:05 allison he might even be happy to grant us a contributor license
20:05 chromatic That's doubly silly.
20:05 allison chromatic: hardly
20:05 allison chromatic: the law dictates a minimum requirement
20:05 bacek I agree with chromatic.
20:05 chromatic "Hi, can we use a header you wrote for people to use in their own projects in our project?  Can we use it under the license terms you selected?"
20:05 allison he'd probably be pleased to hear how we plan to use it
20:05 bacek There is clear copyright statement in this file.
20:06 bacek Anyway, time to go.
20:06 bacek See you!
20:06 allison there's law, and then there's common courtesy
20:06 allison following one doesn't exclude acting on the other
20:07 darbelo "We want to use your freely available code, can you sign this weird legal paper for us?"
20:07 darbelo I know it's not like that, but I know people who'll readi it like that.
20:08 allison nah, it's not like that
20:08 allison I realize licensing seems unnecessarily complex, but some day we really need to get commercial users
20:08 chromatic What legal or moral benefit do we get for asking explicit permission which the copyright in the single file already grants?
20:09 allison and the more obscurities we pile on them, the harder it will be to convince them to use it
20:09 allison chromatic: simplification
20:09 chromatic How?
20:09 allison think of it like coding standards
20:09 allison there's not really any code benefit to indentation and naming rules
20:10 allison but, it makes our lives saner as developers
20:10 kthakore allison: except for sanity?
20:10 kthakore heh
20:10 chromatic How?
20:10 allison licensing standards don't add value to the code, but they add enormous value to the users by making it easy to understand how they can and can't use the code
20:11 kthakore whiteknight: if you have time may I pmsg you?
20:11 kthakore whiteknight: regarding the api  for direct mem access
20:11 allison it ultimately doesn't matter what licensing standards we choose, as long as we make them clear, and as simple as possible
20:11 whiteknight kthakore: I'm packing up to go home now
20:11 whiteknight I'll be online in an hour if you want to chat
20:11 chromatic I understand the point of licenses.  I want to know how asking someone for explicit permission to use code under the license he has already made his code available offers us some legal or ethical benefit.
20:11 kthakore whiteknight: ok np I will just make a googgle doc later
20:12 whiteknight kthakore: okay, awesome
20:12 kthakore whiteknight: go home this can wait
20:12 kthakore whiteknight: caio
20:12 kthakore I am heading home to
20:12 kthakore cya
20:12 allison chromatic: did I say "ask permission"? I said let him know how we're using it (courtesy)
20:13 chromatic Oh.  I misunderstood when you wrote "see if he minds".
20:13 tcurtis joined #parrot
20:13 allison ah, right, in legal terms those are as different as two function names, but in plain english they're pretty similar
20:14 chromatic Notifying him of our intent (and thanking him for making the code available) would be a good thing.
20:16 AndyA_ joined #parrot
20:17 nopaste "moritz" at 87.147.47.146 pasted "This makefile patch brings a small bit closer to install into a directory with whitespace" (71 lines) at http://nopaste.snit.ch/20141
20:18 moritz any objections to applyiing this patch?
20:19 NotFound moritz: I'm not sure if that way will work on windows plaforms.
20:19 moritz NotFound: mberends++ tested an earlier version of that patch on windows...
20:19 chromatic #ps in 10
20:19 NotFound moritz: msvc?
20:19 purl i think msvc is a bit stricter than gcc; meaning it implements C a bit stricter than gcc
20:20 moritz NotFound: no idea, asking right now...
20:21 moritz NotFound: gcc (from strawberry perl)
20:21 Util joined #parrot
20:21 allison joined #parrot
20:23 particle interesting reports from #perl6... rakudo builds in <250MB now, but it builds very slowly.
20:23 chromatic It built slowly before!
20:24 NotFound I'd like to drop support for msvc, and for anything that hasn't more or less sane make and shell.
20:24 darbelo It failed pretty fast on my box ;)
20:24 darbelo Now it takes a long time work.
20:24 allison NotFound: msvc is pretty much a requirement
20:26 moritz chromatic: also t/spec/S05-mass/rx.t is *way* slower than it used to be
20:26 moritz chromatic: so something seem to have made parsing/regex matching much slower
20:26 allison NotFound: sane make is only a requirement as long as we're using make (which is by definition not entirely sane, but it's at least more cross-platform than most of the alternatives)
20:26 chromatic moritz, when did this slow down?
20:27 Coke I haven't had any trouble supporting nmake.
20:27 Coke (thanks to ttbot, anyway)
20:27 Coke dmake, on the other hand...
20:27 moritz chromatic: I'm not sure... r45315 was the first revision where I observed the sloweness, but it could have been very well before
20:27 bacek_mobile joined #parrot
20:28 NotFound allison: make by itself, maybe, but combined with a not so cross-platform shell is a nightmare.
20:28 bubaflub joined #parrot
20:28 Andy I really do love some good maintenance.
20:29 allison NotFound: and this is the selling point for autoconf, let someone else deal with all the silly edge cases
20:29 Austin_away left #parrot
20:29 Coke ... of course, moritz is here, too:
20:29 Coke 16:28 <@moritz_> CokeCokeCokeCoke: r45178 good, r45315 bad
20:29 Coke (for the speed issues.
20:30 Austin joined #parrot
20:30 NotFound allison: I don't think autoconf works with cmd.exe
20:30 darbelo I didn't know autoconf had selling points.
20:30 * darbelo goes afk
20:31 allison it's not flexible enough by a long shot
20:31 allison (the problem with dealing with the edge cases is that you never think of *all* the possible edge cases)
20:31 chromatic moritz, that's a tricky revision.  If you can do anything to pinpoint it further, it's much easier to diagnose and fix.
20:32 moritz chromatic: will try one before
20:32 chromatic Otherwise, I'll profile a shorter version of that regex test to see what happens.
20:33 Topic for #parrotis now #parrot Parrot 2.2.0 "Like Clockwork" Released! | http://parrot.org/ | Channel log: http://irclog.perlgeek.de/parrot/today | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
20:33 bluescreen joined #parrot
20:39 particle i'm sorry, don't we have Perl to deal with non-portable shell commands?
20:40 payload joined #parrot
20:40 allison particle: yes, but we're depending less and less on perl
20:40 allison particle: mini-parrot is an option
20:40 chromatic Reminder: #ps is going on
20:40 particle it's a better option than autoconf, which requires perl
20:44 NotFound Even better, we have parrot.
20:44 chromatic Hm, I bet I know what the Rakudo rx slowdown is; it's the second half of r45315.
20:44 Topic for #parrotis now #parrot Parrot 2.2.0 "Like Clockwork" Released! | http://parrot.org/ | Channel log: http://irclog.perlgeek.de/parrot/today | Improve Rakudo rx and buildtime performance | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
20:44 allison particle: ah, but autoconf only requires perl on the developer side, not on the end-user side
20:45 NotFound We can use the parrot in tree to install the installable one.
20:45 allison particle: we could, in fact, require a fully-built parrot on the developer side
20:45 particle i don't recommend replacing something that works on windows with something that doesn't.
20:46 NotFound autoconf works in windows, provided you use a sane shell
20:46 particle sigh
20:47 TiMBuS joined #parrot
20:47 Coke I don't think comparing our current system to autoconf is fair, since anything will look better in comparison. =-)
20:47 NotFound Coke: I'm just comparing cmd.exe with anything else X-)
20:51 particle so use powershell.
20:54 NotFound particle: tell that to msvc
20:55 arnsholt Powershell is a small improvement over cmd.exe, IMO
20:55 Coke NotFound: what problem, in particular, are you having?
20:56 NotFound Coke: spaces
20:56 Coke aren't we using cmd.exe and msvc in a standard build for a few developers here (like particle) and ttbot?
20:56 Coke NotFound: ... that's not an msvc/cmd.exe problem!
20:56 particle yes
20:56 Coke that's a "parrot build system" problem.
20:57 Coke I will be you a dollar that trunk on linux with bash and gmake and gcc fails if you try to install into "/Some Path".
20:57 NotFound Coke: yes, but any time someone tries to improve the makefile in that aspect, he breaks msvc builds.
21:06 preflex joined #parrot
21:07 lucian joined #parrot
21:16 moritz dukeleto: (gsoc) if I want to act as a possible mentor this year, and already had that status last year, is there anything I need to do?
21:16 dalek TT #1489 closed by coke++: memory PANIC building rakudo
21:16 dalek TT #1489: http://trac.parrot.org/parrot/ticket/1489
21:17 chromatic moritz, I signed up in the Google app again.  I doubt that hurts.
21:20 moritz I can log in with my google account... is there an "I want to be a mentor" button anywhere?
21:20 dukeleto moritz: yes, you need to go to http://socghop.appspot.com and click on "apply to be a mentor" on the lower left
21:21 dukeleto moritz: then choose TPF as the org you want to apply to.
21:21 moritz ah, thanks
21:21 riffraff joined #parrot
21:21 dukeleto moritz: the site is not the most user-friendly
21:21 dukeleto moritz: thanks for being a mentor!
21:22 moritz dukeleto: thanks for being an admin!
21:30 dukeleto moritz++ # much appreciated
21:30 Coke thankfest 2010!
21:38 atrodo dukeleto> http://github.com/atrodo/draak  I know it doesn't compile for anyone else yet, I have to decouple a dependency yet
21:39 atrodo plus the fact that I use kylix instead of freepascal may make things interesting for others
21:42 Topic for #parrotis now #parrot Parrot 2.2.0 "Like Clockwork" Released! | http://parrot.org/ | Channel log: http://irclog.perlgeek.de/parrot/today | Improve Rakudo rx and buildtime performance | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs and roadmap items
21:42 moritz chromatic: rakudo build + spectest run takes 20.5min on parrot r45314, on r45315 it's 49min
21:44 chromatic Okay, it's clear that's the problem (and I suspect I know which line is the problem).
21:44 moritz great
21:44 chromatic I think if we can fix that, we can get the build and spectest run somewhat closer to 15 minutes.
21:44 PerlJam chromatic++
21:45 * PerlJam boggles slightly that it's just one line that's causing the problem.
21:45 moritz PerlJam: maybe the fix takes longer than one line :-)
21:46 PerlJam no doubt
21:46 chromatic I've made enough one line performance improvements that nothing surprises me anymore.
21:46 chromatic Given the source of the memory bug, I half expect that the design of this system included the line "The resulting must resemble a shark when printed on a 132-column line printer at midnight under a full moon."
21:46 pjcj joined #parrot
21:48 dalek parrot: r45326 | allison++ | trunk/DEPRECATED.pod:
21:48 dalek parrot: [cage] Deprecate pushaction, pushmark, and popmark.
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45326/
21:48 dalek parrot: r45327 | petdance++ | trunk/src/pmc/bigint.pmc:
21:48 dalek parrot: headerizing more statics
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45327/
21:48 dalek parrot: r45328 | petdance++ | trunk/src/pmc/hashiterator.pmc:
21:48 dalek parrot: headerizing statics. Removed unused return value from advance_to_next()
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45328/
21:48 dalek parrot: r45329 | petdance++ | trunk/src/pmc/complex.pmc:
21:48 dalek parrot: protect statics with headerizer arguments
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45329/
21:49 dalek TT #1536 created by dukeleto++: Remove History and Maintainer sections from PDD's (mostly drafts)
21:49 dalek TT #1536: http://trac.parrot.org/parrot/ticket/1536
21:50 dukeleto wow, a > 2x speedup in spectest ? awesome! chromatic++
21:50 tcurtis joined #parrot
21:52 Andy 45315 looks like it's bigger than one line
21:52 * allison afk for 20mins
21:53 Andy oh, oh, I see it.  hahah, no need formemory clearing.  Nice.
21:55 Andy Dang, ack _zeroed --cc | wc -l --> 363
21:56 cotto_work mikehh, file a tt about it and assign it to me if you can't figure it out.  I don't think it'll be very hard now that I don't also have svn-- to wrestle with it.
21:57 mikehh cotto_work: I will look into it and file a TT as necessary - need to look at shebang line if it exists
21:58 cotto_work it does in that file
21:58 mikehh also should there be a standard shebang line for nqp - I have seen #!./parrot_nqp and #! nqp and others
21:59 cotto_work Yeah.  I was using /usr/bin/env parrot-nqp, but that used the installed version and dtwt
22:03 mikehh I will spend some time on it, but not right now as I need a break - will look into it later
22:06 GeJ Good morning everyone.
22:10 dalek rakudo: 00d8d8d | (Solomon Foster)++ | src/core/Iterator.pm:
22:10 dalek rakudo: Make .perl on Iterators eager.
22:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​0d8d8d425b6dbf35ed5c5dad370858815cbae44
22:13 Coke I think the shebang should just be "parrot-nqp" (if it's nqp-rx), and we should be running it explicitly with teh build copy if that's what we want.
22:15 AndyA joined #parrot
22:36 dalek parrot: r45330 | petdance++ | trunk/src/pmc/parrotinterpreter.pmc:
22:36 dalek parrot: consting
22:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45330/
22:37 dalek parrot: r45331 | petdance++ | trunk/src/pmc/packfilerawsegment.pmc:
22:37 dalek parrot: consting, and localized a loop variable
22:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45331/
22:43 Austin joined #parrot
22:43 Coke hey, it's ole rough and toothless.
22:44 * Austin sings, "I'm buzzin, dirty dozen, naughty rotten rhymer. Cursin' at you players worse than Marty Schottenheimer..."
22:44 Coke ... my son is playing the theme to old BSG and Jaws on the trombone.
22:45 Austin BSG?
22:45 purl BSG is Battle Star Galactica or Boring Scifi Garbage or Battlesodium Glutamate
22:45 Austin Ah
22:45 Austin Working up to the Darth Vader march?
22:46 Coke I think he has the entire beatles catalogue to get through first.
22:47 * Austin sings, "It don't mean a thing, if it ain't got that swing.."
22:59 pjcj joined #parrot
23:02 cotto_work Where is the import method on the 'parrot' compiler defined?
23:02 cotto_work or more specifically, (how) can I use it to import a subset of the available subs/methods from a ns?
23:03 Austin runtime/language/parrot
23:03 Austin *languages
23:03 cotto_work austin++
23:04 Austin And you can't.
23:05 Austin :(
23:05 cotto_work well crud
23:05 Coke IWBNI if ./partcl -e 'set a {a {b c}}; lset a 1 AA' gave me an error messages in a non-generated file.
23:05 cotto_work s/can't/can't until it gets patched/
23:08 Coke Austin: ok, I think this is an NQP question you might be able to help me with.
23:08 Coke got a sec?
23:08 Austin heh
23:08 Austin Go right ahead.
23:09 Coke that sample above - it's a multi-level list. but the sublist {b c} is coming back as a String, not a TclString.
23:09 Coke list processing is done by the grammar in src/Partcl
23:10 Austin That's being parsed by your getList function, or something else?
23:10 dalek parrot: r45332 | petdance++ | trunk/src/pmc/default.pmc:
23:10 Coke I'm trying to figure out why the list chunks are Strings and not TclStrings.
23:10 dalek parrot: headerizing more statics
23:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45332/
23:10 Coke TclString's .getList() just calls the grammar.
23:10 Austin Okay.
23:10 Coke so the grammar is creating a list of Strings, not TclStrings.
23:10 Austin But is the grammar in Tcl space, or parrot-space?
23:10 Coke ah. bet it's: src/Partcl/commands/main.pir
23:10 Coke er.
23:10 Coke for $<EXPR> { @list.push($_.ast); }
23:11 Coke that push is pushing a String, not a TclString. I bet I can fix this.
23:11 Austin Coke: Now say, "Hey, y'all! Watch this!" And the setup will be complete...
23:12 Coke ... hurm.
23:12 Coke I don't think I can blindly shove that ".ast" into a TclString.
23:14 Coke ... nope, I'm lost. =-)
23:19 Coke any ideas?
23:19 Austin I was wondering if Parrot_str_substr honored the hll mapping.
23:20 dukeleto Austin: i think Parrot_str_* functions are deprecated
23:20 Austin But it has been pre-processed to the point where I can't tell.
23:20 dukeleto Austin: newer-style fuctions have _string_ in the name, iirc
23:20 Austin Laugh.
23:21 Austin Well, since the substr opcode uses it, it can't be all *that* deprecated, can it?
23:21 dukeleto Cry.
23:21 Coke Austin: str_substr returns a STRING, not a PMC
23:21 dukeleto Austin: they are still in use all over the place, but i think they are slowly being changed. perhaps i am wrong. anybody have an authoritave answer?
23:22 Austin Coke: Well, that's going to simplify things, I guess.
23:22 cotto_work I thought it was the _string_ functions that were deprecated.
23:23 cotto_work from DEPRECATED.pod: =item Parrot_string_* [eligible in 2.4]
23:23 Austin Coke: you probably know more about hll mapping than I do.
23:24 Austin Is that just something that switches the types when the topmost string in the current namespace matches ?
23:24 Austin Or is there more intelligence than that?
23:24 dukeleto cotto_work: that shows what I know
23:24 tcurtis The only Parrot_string_* function still used is Parrot_string_cstring, according to a hasty grep.
23:24 Whiteknight joined #parrot
23:24 Coke Austin: er, I don't understand your question.
23:25 Austin Okay.
23:25 Austin How does HLL mapping work?
23:25 allison Parrot_string_* is deprecated in favor of Parrot_str_*
23:26 allison (coding standards dictate a 3-character system code)
23:26 Tene Austin: lemme get it for you, just a sec
23:26 Coke Austin: every place where source does pmc_new (some type), it should call a function on (some type) to see if there is a mapping in some global registry.
23:26 Austin Okay.
23:27 Austin Is there any kind of boundary to that?
23:27 Austin IOW, if /Partcl/main() calles new ['String'] it should get a TclString.
23:27 Coke the registry is keyed to the current HLL.
23:27 Austin But if /parrot/xxx() calls new ['String'], what does it get?
23:28 Coke er, no.
23:28 Coke new ['string'] is always a string.
23:28 Austin ?
23:28 Coke more for when a PMC is generated on your behalf.
23:28 Coke like, for box
23:28 Coke or split.
23:28 Austin Ah
23:29 Austin so s/new ['String']/array.join/ above
23:29 Coke hurm. if I print out the typeof $_.ast in that loop, it's always String.
23:29 Austin okay
23:29 Coke so I /should/ be able to coerce that when i assign it. but I'd rather figure out where that String is being allocated.
23:30 Coke is there a way to get the current HLL from pir?
23:30 Tene Austin: see Parrot_get_HLL_type in src/hll.c
23:33 Tene Austin: the function normally called is Parrot_get_ctx_HLL_type
23:33 Austin shouldn't that be "Parrot_hll_get_type?"
23:33 Austin :)
23:33 Tene which just fetches the hll_id for the current context and calls the other.
23:33 Tene Austin: Probably. :)
23:33 Tene Austin: any other HLL questions before I pack up for the day and go home?
23:33 Austin Nope, that's it. Thanks.
23:34 Tene Great, have fun with HLL issues. :)
23:34 Tene AFK
23:37 Whiteknight new ['String'] creates a new string
23:37 Austin Coke: The Regex::Match class has a .ast method that returns a substring of the input.
23:37 Austin It uses the substr opcode.
23:37 Whiteknight $P0 = box "foo" should create the hll-mapped type
23:38 Austin Or claims to, anyway.
23:38 Austin In reality, I don't think it does. But the stringification uses substr.
23:56 theory joined #parrot
23:56 dalek rakudo: 9f829b4 | jonathan++ | src/Perl6/Actions.pm:
23:56 dalek rakudo: Factor a little bit of commonality out of method_def and regex_def. Support our method/our regex (or my) style declarations. For regexes, get handling of lexical scopes correct, as we do for methods.
23:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​f829b4e80510f974c2ae77cf0ed93c740baa78a
23:56 dalek rakudo: 666470e | jonathan++ | src/Perl6/Compiler/Module.pm:
23:57 dalek rakudo: Declaring a regex (or method) outside of some classy thing shouldn't be an error, just a warning that gets suppressed by writing my or our.
23:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​66470ec84230220cdbef5ae9558b2659aa92fd2
23:57 dalek rakudo: 3576524 | jonathan++ | src/metamodel/ClassHOW.pir:
23:57 dalek rakudo: Make it possible to add extra roles with an augment.
23:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​5765245cf1616762a1acd300a902513e0c2d490
23:57 arnsholt Whiteknight: You around?
23:57 Whiteknight ?
23:58 arnsholt I've been mulling over my buggy code that you so kindly fixed
23:58 arnsholt Isn't it a bit weird that the return value from the previous function call is persisted?
23:58 Whiteknight what doyou mean?
23:59 arnsholt That value was returned after the continuation was created, so stricly it comes from an alternate timeline (or whatever it should be called)
23:59 arnsholt Something about that doesn't sound right. Shouldn't the register hold some kind of undefined value instead?

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced