#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
Set by moderator on 20 March 2010.
bacek May be next year... 00:00
Coke msg Infinoid blogs.perl.org/users/coke/2010/03/a...-away.html - there goes my only CPAN module! 00:12
purl Message for infinoid stored.
darbelo Coke: ping 00:17
Coke pong 00:20
Whiteknight Tene: ping
Tene Whiteknight: pong
Whiteknight Tene: can you take a look at TT #1455?
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
Tene Whiteknight: I can look at it a bit right now.
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:22
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.
Whiteknight ok, take your time
where are you moving from/to?
Coke darbelo: no changes. 00:25
purl no changes is probably why i ask :)
dalek TT #1517 closed by coke++: Comparing Rational PMC to Integer PMC with == blows up 00:26
TT #1517: trac.parrot.org/parrot/ticket/1517
Tene Whiteknight: SLC -> sfbay 00:28
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?
Tene dukeleto: thanks
darbelo happy depchecker => merge time!
treed I like how everyone is like "Yay, you're getting out of Utah!"
dukeleto Tene: i am not saying that SFbay is a cool place (because Portland is better), but congrats on the new job ;) 00:30
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.
sysadmin, for the same company treed is working for now.
dukeleto Tene: sweet. 00:32
Tene Okay, really leaving now. Bye. 00:33
dalek rrot: r45291 | coke++ | trunk (2 files):
Fix think-o in Rational comparison logic.
00:34
dukeleto Coke++ # thanks for taking care of that rational pmc bug, i didn't get a change to test the patch 00:35
Austin Laugh. 00:37
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:38
darbelo It's *illegal* to collect rainwater? WTF? 00:41
Austin Not any more?
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
Infinoid Coke: Cool. Thanks for inspiring me to write that! 00:57
01:02 eiro_ joined 01:03 lucian joined
dalek TT #1533 created by tcurtis++: Typos and inaccuracies in documentation comments of string bitwise ... 01:16
TT #1533: trac.parrot.org/parrot/ticket/1533
Whiteknight I almost pursue a contract position with the wikimedia foundation in SF 01:19
dalek rrot: r45292 | mikehh++ | trunk/src/pmc/parrotthread.pmc:
fix codetest failure - assert args - src/pmc/parrotthread.pmc
01:23
rrot: r45293 | mikehh++ | trunk/src/pmc/packfile.pmc:
fix codetest failure - assert args - src/pmc/packfile.pmc
rrot: r45294 | mikehh++ | trunk/src/pmc/orderedhash.pmc:
fix codetest failure - assert args - src/pmc/orderedhash.pmc
rrot: r45295 | mikehh++ | trunk/src/pmc/imageio.pmc:
fix codetest failure - assert args - src/pmc/imageio.pmc
01:24
Coke ahhh, verbose stuff in build is NOT my fault. whee. 01:31
01:31 eiro_ joined
Whiteknight tcurtis++ # Thanks for the patch in TT #1533 01:32
dalek TT #1533 closed by whiteknight++: Typos and inaccuracies in documentation comments of string bitwise ... 01:33
TT #1533: trac.parrot.org/parrot/ticket/1533
01:37 eiro_ joined
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 trac.parrot.org/parrot/ticket/1504#comment:6 ? Thanks. [Mar 29 01:37:52 2010]
dalek rrot: r45296 | whiteknight++ | trunk/src/string/api.c:
[TT #1533] apply patch from tcurtis++
01:40
rrot: r45297 | coke++ | trunk (47 files):
Eliminate 'vtable method'. It's a vtable, or a vtable function.
rrot: r45298 | mikehh++ | trunk/src/pmc/packfile.pmc:
g++ does not like the extra const
01:44 eiro_ joined
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.
Coke do we still have any svk users? 01:45
or has everyone moved on to git-svn?
chromatic Want to deprecate svk support? 01:47
Coke it never was awesome anyway. And no, I wish to just kill it outright. 01:48
not like it's part of the API.
chromatic No objection. 01:49
dalek TT #487 closed by coke++: [CAGE] 'vtable method' needs to go away
TT #487: trac.parrot.org/parrot/ticket/487
dukeleto +1 to deprecating svk support 01:51
chromatic compilers/imcc/symreg.c:885: warning: ignoring return value of ā€˜strtol’, declared with attribute warn_unused_result 01:52
compilers/imcc/symreg.c:888: warning: ignoring return value of ā€˜strtoul’, declared with attribute warn_unused_result
sorear I seem to have run into an especially nasty destruction order problem. 01:55
01:56 eiro joined
sorear I keep handles from Parrot into Perl. When these are destroyed, they drop references on Perl-side objects 01:56
when this happens, the Perl-side objects are recursively destroyed
if it hits a handle in the *other* direction, it calls gc_unregister
dalek rrot: r45299 | mikehh++ | trunk/docs/pdds/pdd17_pmc.pod:
maximum line length in a pod (pdd) is 78 characters
rrot: r45300 | mikehh++ | trunk/docs/pdds/pdd09_gc.pod:
maximum line length in a pod (pdd) is 78 characters and trailing spaces
sorear thus, my destroy VTABLEs can call Parrot_pmc_gc_unregister
dalek rrot: r45301 | coke++ | trunk/t/distro/file_metadata.t:
Don't run these tests in a tarball.
sorear BUT
rrot: r45302 | mikehh++ | trunk/docs/pdds/draft/pdd06_pasm.pod:
maximum line length in a pod (pdd) is 78 characters
purl i already had it that way, dalek.
rrot: r45303 | mikehh++ | trunk/docs/pdds/draft/pdd08_keys.pod:
maximum line length in a pod (pdd) is 78 characters
purl i already had it that way, dalek.
sorear during global destruction, the global gc registry is DESTROYED FIRST!
crashes ensue
what should I do differently?
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.
sorear chromatic: Segfault on exit. 01:59
My last 10 lines were an analysis
chromatic What problem are you trying to solve that this is a problem? 02:00
02:01 eiro joined
sorear chromatic: Core dumps are littering my test tree 02:01
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?
sorear Allow passing callbacks from Parrot to outside code 02:03
these callbacks need to hold references to the underlying Sub PMCs
if the callback thunk objects are destroyed after the GC registry, crash 02:04
chromatic Unregister them before you destroy the interpreter.
dalek TT #1451 closed by coke++: t/distro/file_metadata.t should not be run from distro tarball. 02:06
TT #1451: trac.parrot.org/parrot/ticket/1451
TT #1534 created by coke++: Remove svk developer support
TT #1534: trac.parrot.org/parrot/ticket/1534
mikehh t/pmc/parrotobject.t - Failed test: 4 in corevm/coretest - looks like the wording has changed 02:07
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
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."
chromatic How are you destroying the interpreter? 02:09
02:09 cotto joined 02:10 payload joined
sorear PL_exit_flags |= PERL_EXIT_DESTRUCT_END; perl_destruct(), perl_free() 02:10
chromatic How are you destroying the *parrot* interpreter? 02:11
sorear parrot-nqp self destructs at EOF 02:12
dalek rrot: r45304 | chromatic++ | trunk/compilers/imcc (2 files):
[IMCC] Removed more "method" from vtable mentions.
02:13
sorear the problem also occurs if an unhandled exception is thrown
(actually, this is the normal case)
(for crashes)
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
sorear Parrot is in charge. 02:14
I start Parrot from the command line.
chromatic Where's your backtrace? 02:15
sorear pastie.org/894614 02:19
exactly what happens is variable
depending on exactly how I die 02:20
02:21 tcurtis joined
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
however, the backtrace system reacted to the bad jump by dropping the gc_unregister frame
Coke chromatic: curses. I didn't think to search for v-table. 02:23
thanks for getting the stragglers.
02:25 Patterner joined
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.
I understand that something crashes when your program ends. 02:26
I think you think this has something to do with Parrot's GC registry.
From what you've said, I have no idea how that could be.
sorear I'm calling Parrot_pmc_gc_unregister in a destroy VTABLE 02:29
chromatic Which destroy?
sorear Parrot's destroy, on the P5Interpreter and P5SV PMCs 02:30
chromatic When do you destroy these PMCs? 02:31
sorear The Parrot garbage collector destroys them automatically at process exit. 02:32
chromatic Then don't unregister them!
sorear I'm not unregistering them. 02:33
They hold references to /other/ things
and need to drop the references on destroy
but since the referential structure is opaque to me, I can't just use mark 02:34
also, I seem to have broken something else
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
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.
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
sorear Objects which are gc_registered, and objects which aren't. 02:37
These are _not the same_
If the latter group objects are destroyed before global destruction, they need to unregister the former group objects.
chromatic Why? 02:39
sorear Because otherwise the former group objects will stick around until the process exits. 02:40
Which would be bad. 02:41
chromatic How would that be bad?
sorear It would leak memory.
Is that bad?
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
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.
sorear other way around - GCed objects control manual objects 02:44
however I seem to have discovered a new crash
03:01 cotto joined 03:14 bubaflub joined 03:20 snarkyboojum joined
Coke -> 03:30
03:39 lucian joined 03:52 Andy joined 04:15 contingencyplan joined 04:26 cotto joined 05:25 fperrad joined
sorear hmm, I need to understand the Parrot MULTI vtable mechanism 05:34
05:36 payload joined 05:41 payload1 joined 05:44 payload joined, payload1 joined 05:46 payload joined 05:47 payload1 joined, cotto joined, payload joined 05:48 eternaleye joined
chromatic trac.parrot.org/parrot/wiki/FixingC...INGCaching 05:52
trac.parrot.org/parrot/wiki/FixingP...eOverrides
Takers welcome. 05:53
06:08 uniejo joined
sorear purl: msg Infinoid - dalek is down again 06:08
purl Message for infinoid stored.
06:12 bacek joined
cotto I smell a merge. 06:24
no dalek. I guess that explains it. 06:26
Wow this is slow. 06:32
svn--
svn-- 06:47
bacek chromatic, can you create "WorldDominationPlan" on wiki? I'll take it.
cotto Can you deal with steps labeled "???"?
chromatic You wouldn't believe it if I told you. 06:48
bacek "???" in "Profit plan", not "Wold domination"
chromatic Just for fun, someone read src/string/api.c line 146. I'll wait.
bacek chromatic, do tell!
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)); ?
chromatic Now read the comment just above it.
bacek I don't get it... 06:50
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.
Suppose you have another such header which refers to the next token.
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.
Until you want to concatenate them together.
bacek holy... 06:52
chromatic Now you have *three* copies of that buffer.
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.
I'm trying that now.
bacek Do we have student for "immutable string GSoC"? 06:54
cotto We had one that emailed the list earlier today.
tcurtis iirc
bacek Did we put "inplace string functions" into DEPRECATED.pod?
Catch him, lock in room and don't let him go until after finishing! 06:57
cotto svn-- screwed up a merge 07:02
bacek, if you're bored, feel free to sync profiling_testing with trunk and merge it back in
if not, I'll take care of it later
night
bacek night cotto 07:06
I'll try to merge it.
Erm... Do we have test failures now??? 07:07
07:07 cognominal joined
chromatic What are you seeing? 07:08
bacek segfault in build_key
t/compilers/imcc/syn/regression_18
sorear So, if the COW string implementation sucks so much, why do you want to keep it? 07:09
bacek g++ build
sorear, no one want to keep it.
sorear I thought I heard chromatic saying he wanted immutable strings AND cow strings 07:10
chromatic And then I said "But not the W part of COW". 07:11
bacek and "shared buffer"
not "COW strings"
chromatic Yeah, I should say "shared buffers" instead.
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"
but substrings can use same buffer 07:13
07:15 dalek joined
bacek O, dalek! 07:16
sorear Hurray! 07:20
bacek doesn't happen on gcc build. Interesting
07:21 iblechbot joined
Coke bacek: I just added that test. 07:26
didn't segf. for me.
(presumably due to gcc)
-> zzz 07:27
bacek chromatic, ping? 07:40
$2 = {flags = 196864, _bufstart = 0x8055964, _buflen = 12,
strstart = 0x805596b "Foo", bufused = 3, strlen = 3, hashval = 2690967049,
encoding = 0x8073dc8, charset = 0x8073f88}
chromatic pong 07:41
bacek can you explain content of this string?
strstart is in 7 bytes after _bufstart 07:42
but bufused is only 3
Did I miss something about our strings?
chromatic Buffers are padded. They also contain a reference count at the very start. 07:43
Buffers can also be larger than the contents of the string to give them room to grow.
bacek yes 07:44
but why bufused is only 3? Not 7+3? 07:46
chromatic I don't know.
bacek Me too... 07:47
chromatic This should be a one-line change, but I'm having weird failures. 07:49
dalek rrot: r45311 | chromatic++ | trunk/src/gc/alloc_resources.c:
[GC] Made buffer_location() debugging function work with not-so-recent context
07:50
rrot: r45312 | chromatic++ | trunk/src/gc (2 files):
[GC] Tidied code; no functional changes.
rrot: r45313 | chromatic++ | trunk/src/hash.c:
[hash] Avoided reinitializing callocated memory to NULL/0.
rrot: r45314 | chromatic++ | trunk/src/packfile.c:
[src] Removed an unnecessary calloc().
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 nopaste.snit.ch/20132 08:07
bacek chromatic, strlen is in characters, not bytes. 08:09
chromatic Hm, how long has it been characters? 08:10
08:10 payload joined
bacek chromatic, no idea. 08:12
nopaste "bacek" at 114.73.158.218 pasted "chromatic: this is my version" (47 lines) at nopaste.snit.ch/20133 08:15
bacek chromatic, my version passed coretest. Failed in PGE.... 08:16
(gdb) p *src
$11 = {flags = 196864, _bufstart = 0xb66f41b0, _buflen = 200,
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 %"...,
bufused = 202, strlen = 202, hashval = 0, encoding = 0x8073dc8,
charset = 0x8073f88}
it's in Parrot_str_replace.
bufused > buflen
sorear purl: msg Infinoid - ignore last message - I only *thought* feather was running. Though having back karma would be nice ;)
purl Message for infinoid stored.
chromatic Yeah, that's where I had trouble too. 08:17
08:28 mikehh joined, AndyA joined
bacek chromatic, looks like str_replace do WRONG THINGS... 08:30
chromatic I'm not surprised. 08:32
bacek chromatic, src/string/api.c:1409 08:36
this is THE problem.
write_COW shrink string. But all calculations already made.
chromatic Makes sense. 08:37
bacek yes, moving write_COW before making calculations works
chromatic All tests pass, everything builds? 08:38
nopaste "bacek" at 114.73.158.218 pasted "chromatic: working version (so far)" (63 lines) at nopaste.snit.ch/20134
bacek running make test 08:39
everything builds.
all tests passed. 08:40
chromatic Let's get it committed and see what happens with Rakudo. 08:41
bacek deal
moritz will try
bacek done 08:43
r45315
chromatic That looks much better. 08:46
sorear How much does it cut the memory use? 08:47
chromatic It's topped out at 233MB RSS, 253 virtual.
sorear \\o/
time to install Rakudo
chromatic++
bacek chromatic, we can make it slightly faster if we will allocate +8 bytes. 08:48
Due CodeString.emit (which usually replace 2 bytes with 3-8)
08:48 ascent joined
chromatic It never topped 256 MB for me. 08:53
sorear just started the rakudo build 08:54
bacek compiling Actions.pm causes GC run about 2 times per second.. 08:56
dalek rrot: r45315 | bacek++ | trunk/src/string/api.c:
Allocate exact amount of memory in Parrot_str_write_COW. chromatic++ for pointing out on this non-sense
bacek Much better. 08:57
purl much better is probably to design each table in isolation with the table name providing context
bacek StringPool size topped on 6 megs. Instead of 230!
chromatic How long has that bug been there, I wonder. 08:59
moritz max virtual memory while compiling the setting seemed to be around 612M... and takes forever 09:00
9 minutes and still running
spectesting now 09:04
bacek moritz, how long it usually takes?
moritz don't know
never measured it
09:07 JimmyZ joined
sorear moritz: P64? 09:08
Compiling Rakudo took 12 hours and 500MB for me, immediately before the PCC merge
This is the first time I've actually been able to use my computer during a rakudo build 09:09
moritz Austin: amd64 09:10
erm, I meant sorear
sorear the setting compiler has been running for 6 minutes and is only up to 260MiB 09:11
moritz it took about 11.5 minutes on my machine 09:12
nopaste "bacek" at 114.73.158.218 pasted "moritz, can you try this patch?" (18 lines) at nopaste.snit.ch/20135 09:13
moritz bacek: will do after the current spectest run 09:14
bacek moritz, ok
09:29 gaz joined 09:34 JimmyZ_ joined
sorear and the compile is FINISHED 09:35
moritz the spectestrun too 09:36
All tests successful.
purl Are you feeling lucky?
sorear chromatic++
09:49 cotto joined
dalek rrot: r45316 | mikehh++ | trunk/src/pmc/nci.pmc:
fix codetest failure - assert args - src/pmc/nci.pmc
10:01
moritz bacek: doesn't seem to be any faster with your patch 10:12
bacek moritz, sigh...
moritz haven't done real measurements 10:13
but still takes 15min to build rakudo with the patch
sorear For me, it went from 12 hours to 45 minutes. 10:15
With no thrashing
bacek sorear, what kind of computer do you have???
sorear One as old as Parrot itself
bacek yak... 10:16
P2 with 256 megs?
sorear P4 with 384
it has been upgraded one or more times
dalek rrot: r45317 | mikehh++ | trunk/src/gc/alloc_resources.c:
fix codetest failure - function documentation - changed parameters
10:17
rrot: r45318 | mikehh++ | trunk/src/gc/gc_ms.c:
add void * cast to get g++ to build - src/gc/gc_ms.c
10:18 cognominal joined 10:26 he_ joined 10:35 clinton joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32914), fulltest) at r45318 - Ubuntu 9.10 amd64 (g++ with --optimize) 10:42
10:48 payload joined
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 11:03 cotto joined 11:16 riffraff joined 11:36 cotto joined 11:47 cognominal joined 12:01 whiteknight joined
bacek msg chromatic 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 12:07 bluescreen joined 12:08 cotto joined
whiteknight good morning parrot 12:16
szbalint Look what you did! :) 12:23
12:31 bluescreen joined, whiteknight joined, clinton joined, gaz joined, mikehh joined, fperrad joined, snarkyboojum joined, eiro_ joined, particle joined, he joined, dngor joined, atrodo joined, slavorgn joined, Coke joined, darbelo joined, Hunger joined, plobsing joined, solarion joined, hicx174 joined, nopaste joined, rt7 joined, sri joined, TimToady joined, arnsholt joined, Khisanth joined, GeJ joined, betterworld joined, preflex joined, NotFound joined, knewt joined, baest joined, athomason joined, treed joined, Infinoid joined, Tene joined, bacek_at_work joined, confound joined, KatrinaTheLamia joined, purl joined 12:37 iblechbot joined 12:41 riffraff joined
whiteknight I hate netsplits 12:44
arnsholt In PMCs, when is init() called, and when is init_pmc() called? 12:51
13:07 cotto joined 13:09 patspam joined
particle init_pmc is called when a pmc is passed to init 13:15
arnsholt That would make perfect sense, of course
particle :) 13:20
13:22 PerlJam joined 13:23 cognominal joined 13:33 payload joined 13:39 payload joined 13:40 khairul joined 13:53 perlpilot joined
whiteknight hates IIS 13:59
there are no saving graces
atrodo doesn't everyone?
purl I know I do.
whiteknight I've got a website on here, I go to localhost, and it tells me that it cannot connect to the remote computer and I should check my TCP settings
atrodo i mean, how do you get that wrong? 14:07
(as in how does IIS get it wrong)
Coke does the loopback address work? 14:11
14:11 Mokurai joined 14:12 Mokurai1 joined
arnsholt Is there a "reference" PMC? 14:13
Coke I have a bet as to where that COW allocation scheme came from.
whiteknight arnsholt: sort of, but not really 14:15
there is a Pointer type, I think, but it can't really be used the way you think 14:16
or, at least I haven't ever seen it used that way
arnsholt Dang
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:17
14:18 bubaflub joined
atrodo PBP is very wise when it talks about being clever for exactly that reason 14:20
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
arnsholt whiteknight: My starting point is here: www.perlmonks.org/?node_id=193649 14:22
14:22 Mokurai1 joined
arnsholt The bit I'm stumped on is how to do the "reference to a reference to a value" bit (\\\\$value) 14:22
About halfway down
whiteknight arnsholt: you may need to create a PMCReference PM 14:27
PMC
or, you could try to "fix" Pointer to do what you want, but I think it's pretty special-purpose
I'm not sure if there's anything else that would really do i
arnsholt Yeah, it's looking like it 14:28
I've fiddled around with NQP a bit, but it doesn't look very doable that way either
whiteknight maybe a better idea would be a general RegisterReference PMC, which would store the current context and register number 14:35
then you could reference ints, nums, strings, and PMCs with a flag
...not something you particularly need, but something that would be generally beneficial 14:36
A take_reference opcode could package it up correctly
Coke wishes he kept better benchmarks. 14:38
Austin arnsholt: What's the point of the double-indirection? 14:39
Coke Austin: I added [lset] to partcl. 14:40
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?
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.
arnsholt Austin: It lets you alter what the objects point to, as well as altering the value of whatever they're pointing at
Austin arnsholt: Sure, but what key capability does that give you? 14:42
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.
whiteknight NotFound: how so?
Austin Just pass the variable names around as references.
arnsholt Say you unify two variables, X and Y, and neither has been unified with a specific value 14:43
14:43 theory joined
Austin my $x := pir::new__PS('Undef'); $y := $x 14:43
(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
Austin Right
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
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.
arnsholt And when Y is unified with Z you set $$Y = $Z, and that way $$$X will be the same as $$$Y and $$$Z
whiteknight NotFound: the biggest problem with inner runloops is that the return values are needed in the C code immediately
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.
arnsholt goes looking at =:=
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.
Austin arnsholt: =:= is perl6 for "issame", which is a reference-equality
arnsholt 'cept feather is down. =:= is "do these two point at the same container", right?
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
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
but that's all doable
arnsholt Austin: $y := $x; is fine. But how from that, how do I propagate a change to $y back to $x?
Austin Okay, that last won't work. (x/y/z)
arnsholt Yeah. That's what has me stumped 14:48
Austin Okay. 14:49
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:50
whiteknight NotFound: yeah. Unfortunately I really don't think we are able to do it yet. It's a good long-term goal 14:52
NotFound whiteknight: chaining some more ideas we'll eventually reach an implementable way. 14:59
whiteknight yes 15:02
15:05 cotto joined
nopaste "Austin" at 68.37.47.32 pasted "Var for arnsholt (in Kakapo)" (51 lines) at nopaste.snit.ch/20136 15:08
arnsholt Austin: Oooh. Nice one. Thanks! 15:10
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
15:14 bluescreen joined
arnsholt What exactly is kakapo? 15:16
Austin runtime library for nqp
arnsholt Ah, right
15:17 payload joined
arnsholt Many thanks again for the help. 15:18
15:18 cottoo joined 15:20 davidfetter joined
cotto karma svn 15:21
purl svn has karma of -21
cotto way too high
davidfetter svn--
karma svn
purl svn has karma of -22
davidfetter karma davidfetter 15:22
purl davidfetter has karma of 8
davidfetter who knew?
cotto svn-- 15:25
merge alread.
davidfetter as linus pointed out, branching is pretty trivial 15:28
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
davidfetter how long after 2.3?
cotto the big blocker being mature trac-git integration 15:30
I assume shortly after it's released.
but that's what I wanted to hear, so the intent may have been otherwise
szbalint cotto: what's not mature enough about trac-git ? 15:38
cotto The last change was 2 years ago. 15:40
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:42
szbalint trac-hacks.org/wiki/GitPlugin ? 15:43
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:44
fails to inspire confidence 15:45
szbalint true
and it's kept in svn ;-)
cotto though at this point I wouldn't mind getting a commit bit for it and fixing stuff myself.
svn-- 15:47
atrodo karma svn
purl svn has karma of -29
kthakore svn-- 15:48
szbalint svn--
kthakore there
I help
szbalint just for good measure.
perlpilot cotto: just revive the switch-to-git idea and see what happens (maybe it'll stick this time)
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?
davidfetter: it works great
davidfetter how?
kthakore davidfetter: see sdlperl.ath.cx/
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
bubaflub: yeah no need to
davidfetter: I can help out
davidfetter cotto, i think we've found a su^H^Hvolunteer :)
kthakore davidfetter: NOOOOOooOOOoooOoooo
davidfetter: sure ... I help .... 15:51
cotto Yeah. Migrating from trac is a non-starter.
kthakore cotto: you don't need to migrate from trac
bubaflub cotto, not sure if this is helpful, but you may want to try your merge with git-svn
cotto Also, it's important that we be able to keep the svn repo around to avoid breaking old links.
kthakore cotto: git works tih trac
cotto: well git-svn repo on your trac should keep links 15:52
szbalint kthakore: which plugin are you using?
kthakore szbalint: TracGit 0.11.02 15:53
davidfetter wonders whether he should pester szbalint about pl/parrot atm
szbalint davidfetter: /me looks @ the other window
kthakore szbalint: trac-hacks.org/wiki/GitPlugin
cotto: when you do a git-svn clone it keeps rNNNN in the commit lines 15:54
cotto: so trac should be able to link to it
cotto: but I forget how I did it at work
cotto: we had a plugin for link to anything
cotto: then we set commit messages as a linkable so if you linked to r3444 it linked to git commit message "r3444 ... blah 15:55
15:57 GodFather joined
cotto That's an option. Could you add that to trac.parrot.org/parrot/wiki/GitTransition 15:57
?
particle 4.08-3.25 15:58
purl 0.83
kthakore cotto: sure
cotto: I might have to hack the pluign for the link it seems ... that plugin was a in house propiertary 15:59
cotto It's 'merged' though someone with more patience will have to take care of svn properties. 16:00
bubaflub cotto, i can go through and set the props 16:01
cotto thanks.
I need to go do something else. Work sounds nice.
bubaflub++ 16:02
bubaflub is it on a branch or is it hitting trunk?
kthakore cotto: updated the wiki 16:06
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)
kthakore gah
where is the url?
16:10 theory joined 16:13 lucian joined 16:25 hercynium joined
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
bubaflub cotto_work: ok, i'm fixing codingstd and svn:props now
cotto_work much appreciated 16:27
It's nice to get that in trunk, even if getting it there was a stupid hack.
bubaflub glad i could help
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. =-)
bubaflub Coke: both patches or just the latest one (modified_remove_cxx.diff)?
16:29 cotto joined
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
particle cotto_work: when feather comes back?
cotto_work I guess that'd help.
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.
checking...
bubaflub it appears so 16:31
Coke bubaflub: then sure, go for it. =-)
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
i'm not sure if it's on trunk as well, lemme check
it appears to be on trunk as well 16:39
Coke bubaflub: you're using g++, aren't you. 16:40
16:41 Essobi joined
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. :|
bubaflub my makefile has "CC = gcc-4.2"
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
Coke: done and done. 16:51
16:54 lucian joined
Coke bubaflub: danke. 16:57
bubaflub++
17:01 darbelo joined
cotto_work hio darbelo 17:02
17:03 gaz joined
darbelo ohai 17:07
cotto_work you have some gsoc ambitions this year, don't you?
darbelo Yeah. I'm looking into NFG now.
whiteknight nice
darbelo++ 17:08
Coke NFG?
purl i guess NFG is No Fscking Good! or grapheme normalization form (see docs/pdds/draft/pdd28_character_sets.pod)
Coke botsnack
purl thanks Coke :)
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
purl thanks whiteknight :)
cotto_work lead botsnack
purl :)
darbelo botsmack 17:09
purl please! another hit! just one more.... *sigh*
whiteknight I think purl has a little S&M in him...
bubaflub i'm applying for GSoC this year as well, but haven't the foggiest idea what I should work on 17:13
darbelo Increasing the awesome. It's what we all do. 17:14
bubaflub i looked at the NFG and Immutable String ideas as well
whiteknight there are a lot of students interested in immutable strings
bubaflub yeah, i saw that on the list
i've applied to some other projects this year 17:15
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
kthakore whiteknight: ain't that nice
whiteknight ain't what nice?
NotFound whiteknight: TT #1430 done.
kthakore whiteknight: that many students for GSOC parrot 17:16
whiteknight NotFound++
kthakore whiteknight: we got 1 candidate and 3 maybes
whiteknight kthakore: for what project?
kthakore whiteknight: SDL_perl vis TPF
whiteknight: also we have started to get frozen bubble on CPAN :)
whiteknight frozen bubble? 17:17
purl well, frozen bubble is Just Fine, and OpenGL. or written in Perl
whiteknight oh, that game
nice
kthakore whiteknight: yeah
whiteknight: and we have a very nice game to use right now too
whiteknight: yapgh.blogspot.com/#Spinner
whiteknight none of the students I have talked to so far have submitted proposals
kthakore whiteknight: so good days
whiteknight: we have one submitted I will have to review it though 17:18
whiteknight I see that
nothing submitted for Parrot. That makes me sad :(
kthakore whiteknight: it is a neat idea no?
whiteknight: awww ... you will get there
whiteknight: parrot is teh awesome 17:19
whiteknight I wish I were still a student, I would apply ASAP
kthakore whiteknight: for parrot?
whiteknight of course!
kthakore or SDL_perl
oh ok
whiteknight: well duh
whiteknight and I would have to do something big and awesome too 17:20
PerlJam wk: you coudl do that anyway :)
kthakore whiteknight: I might 'seduce' some parrot people SDLparrot next year
PerlJam: true.
whiteknight SDLParrot would be very nice
PerlJam: if I were a full-time student, I would have a lot more time
kthakore whiteknight: yup 17:21
whiteknight: it is comming ... slowly
whiteknight: I am designing some specs (which I am testing in perl 5 SDL)
right now
whiteknight nice!
I am very excited to hear that
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
kthakore whiteknight: yeah ... I work on a lot of things 17:22
whiteknight: parrot needs a differnt approach to the bindings
17:22 Austin joined
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
whiteknight probably threads
kthakore whiteknight: THREAD! 17:23
whiteknight: oh yeah ... thanks
:)
whiteknight threads and callbacks are really important
kthakore yes
...
whiteknight: and a way to access C memory directly 17:24
whiteknight: ala pack and substr
whiteknight yes
17:24 merlyn joined
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 17:25 bubaflub joined, bubaflub left
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?
PerlJam merlyn: freenode #perl6
merlyn ahh, not here?
17:25 bubaflub joined
PerlJam probably not here 17:25
merlyn ok - heading there 17:26
kthakore NotFound: well it is a low level access to a void *
NotFound: so you can set your own format and write anything withouth having to do malloc copy free ... crap
NotFound: I want to use it for creating audio streams on the fly 17:27
NotFound: and edit pixels on the fly
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?
you put in a size, and get out an allocated buffer?
kthakore whiteknight: and when I write to it is it written straight into void * ? 17:29
whiteknight: I think you know what I mean ... I can't really explain ...
NotFound: ok I will try
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
kthakore NotFound: we use NCI to use it
whiteknight: yeah!
whiteknight basicaly it would just be a wrapper around malloc/realloc/free
kthakore whiteknight: but I want to write the SDL_Surface->pixels or char* stream
17:30 Austin_Hastings joined
kthakore whiteknight: no that is no good 17:30
whiteknight no good? why not?
kthakore whiteknight: that malloc defeats the whole point 17:31
whiteknight: are you familiar with piddles in PDL
whiteknight ...how else do you get the memory in the first place?
no
kthakore whiteknight: ok well it is direct write access to a XS/C struct
whiteknight from PIR?
kthakore whiteknight: I would like that yes
whiteknight: ok ... maybe I can show you what I mean 17:32
whiteknight okay, so the struct is already allocated?
NotFound kthakore: UnmanagedStruct
purl UnmanagedStruct is just the first file that manifest the problem
whiteknight UnmanagedStruct could be made to work, though isn't pretty now
kthakore whiteknight: yeah
17:33 mberends joined
kthakore whiteknight: 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.
kthakore whiteknight: here is the closest I got in perl5 github.com/kthakore/SDL_perl/tree/r...Surface.xs 17:34
whiteknight: see the access to teh pixels
whiteknight okay, yeah
kthakore whiteknight: the performance is 30 to 40 times slower
whiteknight: Perl OpenGL has used a similar method
whiteknight ok
kthakore whiteknight: and their performance to C is 1.2 - 1.5 times 17:35
whiteknight: that is what I mean
....
whiteknight: I have no clue how to even attempt this
whiteknight kthakore. Take a look at parrot-linear-algebra
they are matrix types, but store data in raw buffers, which can be indexed
kthakore whiteknight: ruoso came up with a hack with pack and substr and some XS magic in src/Core/objects/AudioSpec.xs
whiteknight: ok 17:36
whiteknight: I will see
whiteknight if I add a set_pointer VTABLE, you would have that same access to any pointer you want
17:36 theory joined
kthakore whiteknight: oh! rlly? nice 17:37
whiteknight: but how can I get that access to a alalready allocated struct
??
whiteknight it will take some work
17:38 dalek joined
kthakore I suspected as much 17:38
whiteknight but it's very possible
kthakore I have seen several implementation of this 'pattern?'
whiteknight: pygame, POGL, and PDL
whiteknight I tell you what: if you write up the interface you want to see, I will implment it 17:39
kthakore whiteknight: yay!
kthakore huggles whiteknight
whiteknight :)
kthakore that will make parrotSDL fast enough to use from rakudo 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
kthakore whiteknight: once this and threads/callbacks work SDL WxWidgets and Ogre3d are a huge posibility to parrot 17:41
whiteknight very cool
kthakore whiteknight: give me a few days I will give you the idea
whiteknight threads and callbacks is a huge deal.
kthakore whiteknight: yea
whiteknight kthakore: no problem. Take your time, give me a good design!
kthakore whiteknight: I will try 17:42
whiteknight: I haven't had to design this much 'real stuff' since ... well ever
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
methods are nice but can't do raw pointers 17:45
kthakore and? the raw pointers?
whiteknight some vtables do have raw pointers but are very inflexible
check out src/vtable.tbl
kthakore ok
whiteknight: where is parrot's SVN url? 17:46
PerlJam svn.parrot.org/parrot/trunk
whiteknight PerlJam++
kthakore thaks
17:48 iblechbot joined
Coke parrot svn? 17:48
purl i think parrot svn is svn.perl.org/parrot/trunk
PerlJam parrot git? 17:49
purl it has been said that parrot git is repo.or.cz/w/parrot.git
ruoso kthakore, there's a question to be made before that... 17:52
is the parrot threading model defined already/
?
kthakore ruoso: I am not defining threading
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...
so I assumed you were talking about it ;0
;)
kthakore ruoso: no ... I was talking about that pack, substr hack
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
Coke parrot git also github.com/leto/parrot
parrot git is also github.com/leto/parrot
purl okay, Coke.
kthakore ruoso: but we need it for more than just buf8
17:54 dukeleto joined
kthakore dukeleto: !! 17:54
dukeleto 'ello
kthakore: howdy
purl que tal, dukeleto.
bubaflub afternoon dukeleto
ruoso you need for each of the buffer types, which, I think, all have parrot types 17:55
dukeleto bubaflub: how goes it?
kthakore ruoso: nope not for custom pixel formats
dukeleto: question for you
dukeleto: for you git parrot did you init it with git svn clone?
bubaflub dukeleto: not too shabby, applied to some projects for GSoC last night; still thinking about what i should do with perl / parrot
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 ;)
kthakore dukeleto: how can we see the rXXXX in the commit logs
dukeleto me github mirror is not working right now.
whiteknight bubaflub: any ideas you've heard that caught your interest? Or, anything you want to ask about?
kthakore ruoso: yeah ... but malloc and so on ... is slow 17:57
dukeleto kthakore: what exactly are you asking?
whiteknight or, any systems that you enjoy, and would like to find a project?
kthakore dukeleto: ok when I do git svn clone ... parrotness
dalek rrot: r45325 | mikehh++ | trunk/MANIFEST.SKIP:
regenerate MANIFEST.SKIP
bubaflub whiteknight: hmmmm... i am a math nerd
kthakore dukeleto: I see r4352 = SHA1num
whiteknight bubaflub: GSL bindings are on the list
kthakore dukeleto: I want to go trough git and add the rXXX in to the commit of that SHA1num
bubaflub whiteknight: i'm not really familiar with GSL, i've really only used GMP before 17:58
whiteknight: and i haven't done any NCI binding stuff so it'd be unfamiliar territory for me
whiteknight bubaflub: adding proper CBLAS support to parrot-linear-algebra would be very nice too, but that might be out of scope
bubaflub whiteknight: but if it'd be useful, i'd apply
whiteknight bubaflub: okay, we can find something better
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
17:59 lucian joined
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*
whiteknight bubaflub: part of the point of GSoC is to introduce students to things they aren't familiar with :)
the question is: what do you want to be familiar with next september?
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
kthakore ruoso: ok .. I don't think you are understanding
dukeleto bubaflub: the parrot+rtems project will probably be under the RTEMS org, i think
kthakore ruoso: have you see pygame's surfarray
whiteknight www.perlfoundation.org/perl5/index....0_projects
bubaflub dukeleto: ok, i'll take a look at it
kthakore ruoso: or PDL piddle ? 18:01
dukeleto bubaflub: i suggest that you write an app for that, i can give you guidance
bubaflub whiteknight: reading it now
dukeleto bubaflub: they are in #rtems on freenode
whiteknight nice
kthakore ruoso: it gives high level write access to already allocated memory
whiteknight I don't think that's a complete list, really.
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
kthakore ruoso: so animations and sound changes don't require remalloc
dukeleto bubaflub: great idea!
ruoso kthakore, and that's precisely what I'm talking about
purl i guess talking about is "Yeah, you're alway talking and talking and talking. Shut up and code."
kthakore ruoso: makes them faster
ruoso: rlly?
ruoso yes
kthakore ruoso: ok show me how!
ruoso++
ruoso: yay
dukeleto kthakore: you want to do this in which repo?
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
just like I did by setting the buffer pointer in the SV*
dukeleto bubaflub: yes, definitely
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?
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
dukeleto bubaflub: proper scoping is important
ruoso whiteknight, just like that, yes
kthakore dukeleto: in a trac repo for git transistion (see the wiki)
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."
kthakore whiteknight: ok .. I am loss
whiteknight ruoso: easy-peasy. I could put that together quite quickly. any particular interfaces you want?
dukeleto kthakore: svn revs are already included. for example: github.com/leto/parrot/commit/2be27...d64b6d29ba
ruoso whiteknight, Audio callback is a simple one 18:04
whiteknight Audio callback?
cotto_work #ps in 147
ruoso whiteknight, SDL audio, I mean
kthakore dukeleto: ok good
whiteknight I mean interfaces for the PMC
I don't know any SDL
dukeleto kthakore: also see the "git svn find-rev" command
kthakore dukeleto: now I have to make to crawl the trac db to link rXXX links to thes things
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
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
because switching would be difficult, but if indexed accesses were always the same size it would be easier
ruoso whiteknight, once we configure it, it is static 18:06
I mean
whiteknight so I could make multiple types: ByteBuffer, ShortBuffer, IntBuffer, LongBuffer, etc
ruoso yes
whiteknight okay, perfect
this will be easy
kthakore whiteknight: yay!
ruoso that can be the base for the pixel buffer
which might have a different set of types as whell
kthakore ruoso: ^^ can you show me how that works?
whiteknight what datatype does the pixel use? 18:07
tewk whiteknight, how about sized types instead u8 u16 u32 u64
ruoso kthakore knows that better
kthakore whiteknight: [U|S]in[8|16|32]
U is unsigned
whiteknight yeah, that's fine
kthakore S is signed
ok great!
:)
whiteknight U/S won't really matter on assign
ruoso kthakore, ah... so it's the same... no problem at all
kthakore ok
whiteknight we just won't do arithmetic in place
kthakore sure ...
dukeleto kthakore: what exactly are you trying to do?
kthakore dukeleto: for git?
whiteknight you do your own damn arithmetic :)
cotto_work Coke, eor in #ps? 18:08
kthakore dukeleto: see teh git integration wiki
tewk short int long is a bad naming convention that is inconsistent across plagforms
kthakore cotto_work: what is that link again?
dukeleto: hold on getting link
cotto_work trac.parrot.org/parrot/wiki/GitTransition
kthakore dukeleto: ^^
ruoso but when dealing with SDL we need to support threading...
which gets back to my first question 18:09
was parrot threading model defined already?
kthakore ruoso: I donno
ruoso: haven't seen threads in parrot yet
Coke cotto_work: ayup 18:10
tewk We should move to git before SoC starts.
kthakore tewk: help me then
tewk ducks and runs for cover.
bubaflub though it's not two-months work, i'm tempted to propose migrating to git as a GSoC project 18:12
18:12 mberends joined
PerlJam bubaflub: it might be 2 months work to make everyone happy. 18:13
kthakore PerlJam: for sure
purl like totally!
bubaflub PerlJam: hah. yeah. doesn't involve a lot of parrot coding or compiler guts
18:13 gaz joined
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.
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:14
Coke cotto_work: let me (or someone) know when to involve OSU OSL. 18:18
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?
mberends: that issue has come up before, methinks 18:21
cotto_work dukeleto, doing so now
dukeleto mberends: it may have gotten re-broken in the recent Makefile refactorings
mberends dukeleto: ah. Searching on trac was not easy.
Coke mberends: I believe there is a ticket. 18:22
Easy enough for someone on non-windows to check.
mberends Coke: great. I'd like to append results from Rakudo to the ticket. 18:23
Coke #930 18:24
mberends :-) thanks Coke
Coke note quite, but it's the same genre.
*not
(also #888)
18:24 lucian joined
NotFound Using a prefix with a space in linux, parrot builds but fails to install. 18:26
mberends yes, on Windows XP also
NotFound Fails while compiling the installable executables.
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
dukeleto NotFound: if i give it an invalid --prefix, it seems to succeed but doesn't
NotFound dukeleto: Invalid in what sense?
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
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"
NotFound dukeleto: I tempted to consider a bug using make for install. 18:32
18:32 lucian joined
NotFound Or even better, using make. 18:33
18:34 mberends joined
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
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.
cotto_work trac.parrot.org/parrot/ticket/1535 (trac+git demo site) 18:39
dalek TT #1535 created by cotto++: trac+git demo site 18:46
TT #1535: trac.parrot.org/parrot/ticket/1535
dukeleto atrodo: sounds cool. is this code anywhere publicly viewable? 18:49
yay, dalek gives TT URL! dalek++
atrodo not right now. I was going to yesterday, but realized my license was out of order
lucian cotto_work: if there are so many git objections, why not try hg? 18:51
cotto_work lucian, they're almost all addressed 18:52
most would apply to any vcs switch
lucian cotto_work: great then. looking forward to a dvcs
dukeleto dcvs++
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.
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
cotto_work: which is why i mentioned it 18:55
i found this interesting joelonsoftware.com/items/2010/03/17.html 18:56
darbelo having used *cvs* svn still looks wrong.
lucian cotto_work: #5 is also a non-issue in hg, since history is sacred 18:57
purl okay, lucian.
lucian purl: what?
purl i haven't a clue, lucian
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
lucian darbelo: trac.parrot.org/parrot/wiki/GitObjections
darbelo I know. I was wondering what purl had for #5 :)
lucian ah 18:59
18:59 bacek joined 19:00 dmagnus joined 19:07 theory joined 19:12 KatrinaTheLamia joined, athomason joined, treed joined, Infinoid joined, Tene joined, bacek_at_work joined, confound joined, baest joined, GeJ joined, Khisanth joined, arnsholt joined, sri joined, nopaste joined, Hunger joined, Coke joined, dngor joined, he joined, particle joined, eiro_ joined, snarkyboojum joined, fperrad joined, clinton joined, whiteknight joined, davidfetter joined, bubaflub joined, dukeleto joined, lucian joined, chromatic joined 19:13 bubaflub left, bubaflub joined 19:15 Andy joined
Coke const Andy *const work. 19:22
Andy ? 19:23
Coke hurm. why does tools/dev/install_files.pl know what install defaults are?
Andy: const nothing just const saying hey const. 19:24
bubaflub haha
Coke shouldn't those defaults come from config?
Andy One thing about hte headerizer makes me sad
It doesn't recognize funcs that being with a { at the end of the line, instead of starting at the beginning of the next.
but I don't want to dig into that now.
Coke ISTR we had a coding standard that it should be that way, but could be mistaken. 19:25
Andy that could be.
many many instances do not.
19:28 allison joined 19:34 AndyA joined
dukeleto did i miss #ps? 19:37
Coke abou 50m to go. 19:38
dukeleto Coke++ thanks 19:40
Coke points at the latest groklaw. 19:43
bacek morning 19:44
I'll miss todays #ps
cotto_work #ps will miss you 19:46
your report seems to be truncated
bacek yak... 19:47
"fixed" 19:48
chromatic, did you see my msg about AVL? 19:50
chromatic Yes, I was considering using that header as well.
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)
chromatic Besides, there aren't many ways to implement an algorithm or a data structure like that without copying code almost verbatim.
bacek indeed.
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.
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
allison it depends on what the license is
bacek MIT
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.
allison but, we would have to note the license exception for Parrot
Coke (even if it's in .p6)
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...)
honestly, some days I think Parrot should just switch to BSD
chromatic It's only that specific file that would have any interesting license information.
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.
allison chromatic: in case they want to do something that fits with the terms of one license but not another
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
allison chromatic: MIT doesn't
chromatic Sure it does.
allison chromatic: it requires the copyright notice and license to be included in all modified versions 19:57
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
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.
allison particle: Apache is another good choice, close to Artistic, but much, much simpler
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.
*packagers
allison particle: but then, I'm not sure licensing is a good investment of time at the moment 20:00
Coke: it's not about packagers, it's about users
20:00 lucian joined
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*
Coke allison: ah. I think our users would, in general, prefer a production with multiple licenses than no product. 20:01
... damn.
a *product with...
chromatic Yes, but *there aren't that many ways to write an AVL tree*.
I can think of... well, one.
bacek chromatic, at least two :) 20:02
darbelo But there are limitless ways to name the variables!
allison and plenty of way to write balancing binary search trees
chromatic They're all going to look the same.
allison chromatic: well, not line-for-line identical code 20:03
but similar
a more important question is who wrote it
bacek in this case: Copyright (c) 2005 Ian Piumarta 20:04
NotFound to blame him!
bacek piumarta.com/software/tree/tree-1.0/
allison then email him, let him know our intended use, and see if he minds
chromatic That's silly. 20:05
allison he might even be happy to grant us a contributor license
chromatic That's doubly silly.
allison chromatic: hardly
chromatic: the law dictates a minimum requirement
bacek I agree with chromatic.
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?"
allison he'd probably be pleased to hear how we plan to use it
bacek There is clear copyright statement in this file.
Anyway, time to go. 20:06
See you!
allison there's law, and then there's common courtesy
following one doesn't exclude acting on the other
darbelo "We want to use your freely available code, can you sign this weird legal paper for us?" 20:07
I know it's not like that, but I know people who'll readi it like that.
allison nah, it's not like that 20:08
I realize licensing seems unnecessarily complex, but some day we really need to get commercial users
chromatic What legal or moral benefit do we get for asking explicit permission which the copyright in the single file already grants?
allison and the more obscurities we pile on them, the harder it will be to convince them to use it 20:09
chromatic: simplification
chromatic How?
allison think of it like coding standards
there's not really any code benefit to indentation and naming rules
but, it makes our lives saner as developers 20:10
kthakore allison: except for sanity?
heh
chromatic How?
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
kthakore whiteknight: if you have time may I pmsg you? 20:11
whiteknight: regarding the api for direct mem access
allison it ultimately doesn't matter what licensing standards we choose, as long as we make them clear, and as simple as possible
whiteknight kthakore: I'm packing up to go home now
I'll be online in an hour if you want to chat
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.
kthakore whiteknight: ok np I will just make a googgle doc later
whiteknight kthakore: okay, awesome 20:12
kthakore whiteknight: go home this can wait
whiteknight: caio
I am heading home to
cya
allison chromatic: did I say "ask permission"? I said let him know how we're using it (courtesy)
chromatic Oh. I misunderstood when you wrote "see if he minds". 20:13
20:13 tcurtis joined
allison ah, right, in legal terms those are as different as two function names, but in plain english they're pretty similar 20:13
chromatic Notifying him of our intent (and thanking him for making the code available) would be a good thing. 20:14
20:16 AndyA_ joined
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 nopaste.snit.ch/20141 20:17
moritz any objections to applyiing this patch? 20:18
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...
chromatic #ps in 10
NotFound moritz: msvc?
purl i think msvc is a bit stricter than gcc; meaning it implements C a bit stricter than gcc
moritz NotFound: no idea, asking right now... 20:20
NotFound: gcc (from strawberry perl) 20:21
20:21 Util joined, allison joined
particle interesting reports from #perl6... rakudo builds in <250MB now, but it builds very slowly. 20:23
chromatic It built slowly before!
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 ;)
Now it takes a long time work.
allison NotFound: msvc is pretty much a requirement
moritz chromatic: also t/spec/S05-mass/rx.t is *way* slower than it used to be 20:26
chromatic: so something seem to have made parsing/regex matching much slower
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)
chromatic moritz, when did this slow down?
Coke I haven't had any trouble supporting nmake. 20:27
(thanks to ttbot, anyway)
dmake, on the other hand...
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
NotFound allison: make by itself, maybe, but combined with a not so cross-platform shell is a nightmare. 20:28
20:28 bubaflub joined
Andy I really do love some good maintenance. 20:28
allison NotFound: and this is the selling point for autoconf, let someone else deal with all the silly edge cases 20:29
20:29 Austin_away left
Coke ... of course, moritz is here, too: 20:29
16:28 <@moritz_> CokeCokeCokeCoke: r45178 good, r45315 bad
(for the speed issues.
20:30 Austin joined
NotFound allison: I don't think autoconf works with cmd.exe 20:30
darbelo I didn't know autoconf had selling points.
darbelo goes afk
allison it's not flexible enough by a long shot 20:31
(the problem with dealing with the edge cases is that you never think of *all* the possible edge cases)
chromatic moritz, that's a tricky revision. If you can do anything to pinpoint it further, it's much easier to diagnose and fix.
moritz chromatic: will try one before 20:32
chromatic Otherwise, I'll profile a shorter version of that regex test to see what happens.
moderator #parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs 20:33
bluescreen joined
particle i'm sorry, don't we have Perl to deal with non-portable shell commands? 20:39
20:40 payload joined
allison particle: yes, but we're depending less and less on perl 20:40
particle: mini-parrot is an option
chromatic Reminder: #ps is going on
particle it's a better option than autoconf, which requires perl
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.
moderator #parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: 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:44
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
particle i don't recommend replacing something that works on windows with something that doesn't.
NotFound autoconf works in windows, provided you use a sane shell 20:46
particle sigh
20:47 TiMBuS joined
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-)
particle so use powershell. 20:51
NotFound particle: tell that to msvc 20:54
arnsholt Powershell is a small improvement over cmd.exe, IMO 20:55
Coke NotFound: what problem, in particular, are you having?
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?
NotFound: ... that's not an msvc/cmd.exe problem!
particle yes
Coke that's a "parrot build system" problem.
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 21:07 lucian joined
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
TT #1489: trac.parrot.org/parrot/ticket/1489
chromatic moritz, I signed up in the Google app again. I doubt that hurts. 21:17
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 socghop.appspot.com and click on "apply to be a mentor" on the lower left
moritz: then choose TPF as the org you want to apply to. 21:21
moritz ah, thanks
21:21 riffraff joined
dukeleto moritz: the site is not the most user-friendly 21:21
moritz: thanks for being a mentor!
moritz dukeleto: thanks for being an admin! 21:22
dukeleto moritz++ # much appreciated 21:30
Coke thankfest 2010!
atrodo dukeleto> github.com/atrodo/draak I know it doesn't compile for anyone else yet, I have to decouple a dependency yet 21:38
plus the fact that I use kylix instead of freepascal may make things interesting for others 21:39
moderator #parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: 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:42
chromatic Okay, it's clear that's the problem (and I suspect I know which line is the problem). 21:44
moritz great
chromatic I think if we can fix that, we can get the build and spectest run somewhat closer to 15 minutes.
PerlJam chromatic++
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 :-)
PerlJam no doubt 21:46
chromatic I've made enough one line performance improvements that nothing surprises me anymore.
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
dalek rrot: r45326 | allison++ | trunk/DEPRECATED.pod:
[cage] Deprecate pushaction, pushmark, and popmark.
21:48
rrot: r45327 | petdance++ | trunk/src/pmc/bigint.pmc:
headerizing more statics
rrot: r45328 | petdance++ | trunk/src/pmc/hashiterator.pmc:
headerizing statics. Removed unused return value from advance_to_next()
rrot: r45329 | petdance++ | trunk/src/pmc/complex.pmc:
protect statics with headerizer arguments
TT #1536 created by dukeleto++: Remove History and Maintainer sections from PDD's (mostly drafts) 21:49
TT #1536: trac.parrot.org/parrot/ticket/1536
dukeleto wow, a > 2x speedup in spectest ? awesome! chromatic++ 21:50
21:50 tcurtis joined
Andy 45315 looks like it's bigger than one line 21:52
allison afk for 20mins
Andy oh, oh, I see it. hahah, no need formemory clearing. Nice. 21:53
Dang, ack _zeroed --cc | wc -l --> 363 21:55
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:56
mikehh cotto_work: I will look into it and file a TT as necessary - need to look at shebang line if it exists 21:57
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
cotto_work Yeah. I was using /usr/bin/env parrot-nqp, but that used the installed version and dtwt 21:59
mikehh I will spend some time on it, but not right now as I need a break - will look into it later 22:03
GeJ Good morning everyone. 22:06
dalek kudo: 00d8d8d | (Solomon Foster)++ | src/core/Iterator.pm:
Make .perl on Iterators eager.
22:10
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:13
22:15 AndyA joined
dalek rrot: r45330 | petdance++ | trunk/src/pmc/parrotinterpreter.pmc:
consting
22:36
rrot: r45331 | petdance++ | trunk/src/pmc/packfilerawsegment.pmc:
consting, and localized a loop variable
22:43 Austin joined
Coke hey, it's ole rough and toothless. 22:43
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.
Austin BSG? 22:45
purl BSG is Battle Star Galactica or Boring Scifi Garbage or Battlesodium Glutamate
Austin Ah
Working up to the Darth Vader march?
Coke I think he has the entire beatles catalogue to get through first. 22:46
Austin sings, "It don't mean a thing, if it ain't got that swing.." 22:47
22:59 pjcj joined
cotto_work Where is the import method on the 'parrot' compiler defined? 23:02
or more specifically, (how) can I use it to import a subset of the available subs/methods from a ns?
Austin runtime/language/parrot 23:03
*languages
cotto_work austin++
Austin And you can't. 23:04
:( 23:05
cotto_work well crud
Coke IWBNI if ./partcl -e 'set a {a {b c}}; lset a 1 AA' gave me an error messages in a non-generated file.
cotto_work s/can't/can't until it gets patched/
Coke Austin: ok, I think this is an NQP question you might be able to help me with. 23:08
got a sec?
Austin heh
Go right ahead.
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
list processing is done by the grammar in src/Partcl
Austin That's being parsed by your getList function, or something else? 23:10
dalek rrot: r45332 | petdance++ | trunk/src/pmc/default.pmc:
headerizing more statics
Coke I'm trying to figure out why the list chunks are Strings and not TclStrings.
Coke TclString's .getList() just calls the grammar.
Austin Okay.
Coke so the grammar is creating a list of Strings, not TclStrings.
Austin But is the grammar in Tcl space, or parrot-space?
Coke ah. bet it's: src/Partcl/commands/main.pir
er.
for $<EXPR> { @list.push($_.ast); }
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...
Coke ... hurm. 23:12
I don't think I can blindly shove that ".ast" into a TclString.
... nope, I'm lost. =-) 23:14
any ideas? 23:19
Austin I was wondering if Parrot_str_substr honored the hll mapping.
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.
dukeleto Austin: newer-style fuctions have _string_ in the name, iirc
Austin Laugh.
Well, since the substr opcode uses it, it can't be all *that* deprecated, can it? 23:21
dukeleto Cry.
Coke Austin: str_substr returns a STRING, not a PMC
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?
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.
from DEPRECATED.pod: =item Parrot_string_* [eligible in 2.4] 23:23
Austin Coke: you probably know more about hll mapping than I do.
Is that just something that switches the types when the topmost string in the current namespace matches ? 23:24
Or is there more intelligence than that?
dukeleto cotto_work: that shows what I know
tcurtis The only Parrot_string_* function still used is Parrot_string_cstring, according to a hasty grep.
23:24 Whiteknight joined
Coke Austin: er, I don't understand your question. 23:24
Austin Okay. 23:25
How does HLL mapping work?
allison Parrot_string_* is deprecated in favor of Parrot_str_*
(coding standards dictate a 3-character system code) 23:26
Tene Austin: lemme get it for you, just a sec
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.
Austin Okay.
Is there any kind of boundary to that? 23:27
IOW, if /Partcl/main() calles new ['String'] it should get a TclString.
Coke the registry is keyed to the current HLL.
Austin But if /parrot/xxx() calls new ['String'], what does it get?
Coke er, no. 23:28
new ['string'] is always a string.
Austin ?
Coke more for when a PMC is generated on your behalf.
like, for box
or split.
Austin Ah
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.
Austin okay
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.
is there a way to get the current HLL from pir? 23:30
Tene Austin: see Parrot_get_HLL_type in src/hll.c
Austin: the function normally called is Parrot_get_ctx_HLL_type 23:33
Austin shouldn't that be "Parrot_hll_get_type?"
:)
Tene which just fetches the hll_id for the current context and calls the other.
Austin: Probably. :)
Austin: any other HLL questions before I pack up for the day and go home?
Austin Nope, that's it. Thanks.
Tene Great, have fun with HLL issues. :) 23:34
AFK
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.
It uses the substr opcode.
Whiteknight $P0 = box "foo" should create the hll-mapped type
Austin Or claims to, anyway. 23:38
In reality, I don't think it does. But the stringification uses substr.
23:56 theory joined
dalek kudo: 9f829b4 | jonathan++ | src/Perl6/Actions.pm:
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
kudo: 666470e | jonathan++ | src/Perl6/Compiler/Module.pm:
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.
kudo: 3576524 | jonathan++ | src/metamodel/ClassHOW.pir:
Make it possible to add extra roles with an augment.
arnsholt Whiteknight: You around?
Whiteknight ?
arnsholt I've been mulling over my buggy code that you so kindly fixed 23:58
Isn't it a bit weird that the return value from the previous function call is persisted?
Whiteknight what doyou mean?
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
Something about that doesn't sound right. Shouldn't the register hold some kind of undefined value instead?