Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-09

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 * bacek totally confused when this regression was introduced...
00:02 bacek Bah...
00:02 Coke it's been a problem in branch for some time.
00:02 bacek I'm on codestring branch, not trunk...
00:02 Coke yes.
00:02 Coke trunk was failing tests for a while though, so we're borked either way! =-)
00:03 khisanth_ joined #parrot
00:04 nopaste "bacek" at 192.168.1.3 pasted "Another patch for codestring" (52 lines) at http://nopaste.snit.ch/20507
00:04 Coke got past Action.pm which I haven't in some time. it also was taking 8G, though.
00:05 bacek Coke: can you try tis one? It should show some stats during build.
00:05 Coke is that in addition to or in place of?
00:06 Khisanth joined #parrot
00:06 bacek in place of
00:09 Mokurai1 joined #parrot
00:23 Coke bacek a LOT of debug output.
00:23 Coke Total blocks: 3 122414472
00:23 Coke and counting.
00:23 purl counting is ok
00:23 bacek yes...
00:24 bacek But it's 120 megs of strings. Not 8 gigs
00:24 Coke counting.
00:24 purl it has been said that counting is ok
00:26 Coke Total blocks: 3 230477968
00:26 Coke (new file. guess I should cancel this and capture the output.)
00:27 bacek Just replace #ifdef 1 with #ifdef RESOURCE_DEBUG in pad_pool_size
00:27 bacek I've got info I need...
00:28 Coke ... that wasn't the last number output. it was just some random line.
00:28 Coke good enough?
00:28 bacek "enough"
00:28 bacek But not good...
00:29 bacek Basically - we've lost optimization for not-compacting pools
00:36 hercynium joined #parrot
00:39 Coke Total blocks: 3 499437648
00:40 Coke (still going. I'm just bored)
00:43 Coke ok, killed it.
00:48 bacek Coke: sorry, I have to go.
00:50 bacek But you can try next things: 1) Don't use string allocations for SB.buffer. Use gc_allocate_memory/reallocate manually; 2) Replace str_copy with str_clone (actually just put return str_clone into str_copy)
00:56 joeri joined #parrot
00:58 particle joined #parrot
01:01 Mokurai2 joined #parrot
01:32 dalek parrot: r46423 | plobsing++ | trunk/compilers/imcc (5 files):
01:32 dalek parrot: kill graph colouring register allocator
01:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46423/
01:32 dalek parrot: r46424 | plobsing++ | trunk/t/compilers/imcc/imcpasm (2 files):
01:32 dalek parrot: remove TT1281 todoed tests
01:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46424/
01:42 dalek TT #1281 closed by plobsing++: Remove graph coloring register allocator from IMCC
01:42 dalek TT #1281: http://trac.parrot.org/parrot/ticket/1281
01:59 dalek rakudo: c52c61a | (Solomon Foster)++ | src/core/ (4 files):
01:59 dalek rakudo: Add Numeric versions of the infix:<cmp> family of operators.  Move the old infix:<cmp>(Num, Num) operator code to infix:�<=>�(Num, Num) and delete infix:<cmp>(Num, Num).  Remove the Rat versions of infix:<cmp>.
01:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​52c61a87f163e49cb4fa5ef3d92482584d2e0fb
01:59 dalek rakudo: 9427875 | (Solomon Foster)++ | tools/test_summary.pl:
01:59 dalek rakudo: Change // to || to keep Perl 5.8 happy.
01:59 purl dalek: that doesn't look right
01:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​427875e1fac5c7ee5fda730446c1436c761e137
01:59 dalek rakudo: 85a7aa4 | (Solomon Foster)++ | src/core/Numeric.pm:
01:59 dalek rakudo: Eliminate Numeric versions of eq, ne, lt, gt, le, and ge -- these should always be string comparisons.
01:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​5a7aa428dc3be5d415ef79dacaa5f0fa6c044f5
02:00 Psyche^ joined #parrot
02:13 sorear hmm
02:13 sorear in a Parrot stack trace, the line numbers and byte code offsets always point to the beginning of the functions
02:13 sorear do we know why?
02:34 sorear experiment failed
02:34 sorear subclass of RPA is failing to behave as a RPA with no evidence of why
02:34 sorear it just returns empty iterators
02:36 janus joined #parrot
02:42 plobsing sorear: which vtables have you overloaded?
02:42 sorear plobsing: none
02:43 sorear oh, get_bool
02:43 purl i think get_bool is 5.66% of execution time.
02:44 plobsing all RPA's get_iter vtable does is "return  new 'ArrayIterator'(self);"
02:44 plobsing try doing that manually to see if it fails
02:48 sorear I had already reverted...
02:48 sorear I wasn't trying to debug anything, just run a "quick experiment"
02:52 JimmyZ joined #parrot
02:55 Andy joined #parrot
03:18 sorear yikes.  *** glibc detected heap corruption *** during a post-realclean build of the codestring branch
03:18 * sorear checks if it's repeatable after turning off randomize_va_space
03:19 sorear (in miniparrot)
03:27 sorear yes.
03:27 sorear absolutely repeatable.
03:28 sorear imcc_run -> ??? -> yyparse -> yylex -> mem_sys_free -> *** glibc detected *** ./miniparrot: free(): invalid next size (fast): 0x080f1358 ***
03:29 sorear start with latest 'codestring' on linux/i386 gcc 4.4.4
03:29 sorear svn status --no-ignore #empty
03:29 sorear perl Configure.pl
03:29 sorear make
03:29 sorear 1.6MB core dump
03:35 sorear according to strace, no files from my existing parrot install are being read and possibly poisoning
03:47 plobsing hmmm... works fine for me
04:01 khairul joined #parrot
04:14 sorear grr.  watchpoints appear to be broken in debian gdb 7
04:14 * sorear minimizes the test case
04:20 sorear oh I see
04:20 sorear it can't place hardware watchpoints in not-yet-allocated memory
04:20 sorear so after 'run', the existing watchpoints all revert to software
04:31 dalek parrot: r46425 | petdance++ | trunk/compilers/imcc (2 files):
04:31 dalek parrot: re-headerized
04:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46425/
04:33 JimmyZ joined #parrot
04:42 JimmyZ joined #parrot
04:42 dalek TT #1622 created by plobsing++: [DEPRECATED] :unique_reg  flag
04:42 dalek TT #1622: http://trac.parrot.org/parrot/ticket/1622
04:47 sorear after spending an hour or two chasing malloc memory corruption in the debugger, it just occurred to me to use valgrind
04:47 dalek parrot: r46426 | jimmy++ | trunk/src/call (2 files):
04:47 dalek parrot: random consting
04:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46426/
04:50 sorear bacek: Are you still here?
04:51 sorear Or any other committer.
04:51 sorear bacek got the arguments to memset backward at gc_ms.c :1365
04:51 sorear our new memory allocator, in debug mode, fills the first 15 bytes of any allocation with the allocation's size as a byte
04:52 sorear including allocations smaller than 15 bytes
04:54 sorear plobsing: Are you on a non-optimized post-46422?
04:57 plobsing I checked out and ran 'perl Configure.pl; make -j3'
04:57 plobsing maybe it's not recent
04:57 patspam joined #parrot
04:58 sorear the bogus patch was 6 hours ago
04:59 sorear anyways, reversing the arguments to memset makes it work.
05:04 dalek parrot: r46427 | plobsing++ | trunk (9 files):
05:04 dalek parrot: deprecate :unique_reg and make it a nop
05:04 dalek parrot: also eliminate NON_VOLATILE flag used for life analysis
05:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46427/
05:04 dalek parrot: r46428 | jimmy++ | trunk/src (2 files):
05:04 dalek parrot: removed unused value and consting
05:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46428/
05:04 plobsing sorear: we're talking about the codestring branch right?
05:08 sorear plobsing: yes
05:08 sorear Coke: I know why 'codestring' is using so much memory
05:09 plobsing make test passes for me at r46428
05:09 sorear plobsing: with or without --optimize?
05:09 plobsing without
05:10 sorear bacek committed 46422 to 'codestring'
05:10 sorear not trunk
05:11 sorear are you doing anything which might cause NDEBUG to be set?
05:11 plobsing nope. maybe it is pulling it from the system perl
05:12 sorear likely.
05:12 sorear anyway, the line is obviously wrong
05:12 sorear just look at memset(3) and compare argument orders...
05:13 plobsing hmmm... true enough
05:15 plobsing hmmm... maybe the object being memset gets packed into fewer than 15 bytes on your machine but not mine (x64)
05:16 sorear under glibc, no allocated object can be smaller than 2*sizeof(size_t)
05:17 sorear so yeah.
05:17 purl hmmm... so yeah is there anyone that has any advice on how to get a resultset that contains two joined tables ?\
05:19 sorear Coke: Do you want me to explain the codestring memory problem?
05:19 sorear purl: forget so yeah
05:19 purl sorear: I forgot so yeah
05:24 plobsing sorear: fixed
05:32 rbuels joined #parrot
05:36 dalek parrot: r46429 | plobsing++ | branches/codestring/src/gc/gc_ms.c:
05:36 dalek parrot: correct order of arguments to memset (sorear++)
05:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46429/
05:39 sorear plobsing: excellent
05:53 dalek parrot: r46430 | plobsing++ | trunk/compilers/imcc (8 files):
05:53 dalek parrot: remove some life analysis code dead after graph colouring allocator removal
05:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46430/
05:54 JimmyZ joined #parrot
06:21 dalek TT #1152 closed by plobsing++: :named should default to the name of the parameter
06:21 dalek TT #1152: http://trac.parrot.org/parrot/ticket/1152
06:25 dalek parrot: r46431 | plobsing++ | trunk (4 files):
06:25 dalek parrot: allow named params to default to their variable name.
06:25 dalek parrot: fixes TT1152
06:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46431/
06:34 kjeldahl joined #parrot
06:41 dalek parrot: r46432 | jimmy++ | trunk/src/call/args.c:
06:41 dalek parrot: cleaned up unused struct
06:41 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46432/
06:51 dalek rakudo: 118f4aa | (Solomon Foster)++ | src/core/ (5 files):
06:51 dalek rakudo: Overhaul sqrt for Numeric / Real.
06:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​18f4aa4b6353b0ddeb43634764d117e202d9d68
07:08 ShaneC joined #parrot
07:08 ShaneC Hello
07:08 purl privet, ShaneC.
07:10 dalek TT #1030 closed by plobsing++: long sub invocation with named parameters
07:10 dalek TT #1030: http://trac.parrot.org/parrot/ticket/1030
07:10 ShaneC Is there a web site somewhere that lists parrot's supported platforms?
07:11 ShaneC browsed the main site a bit but i didn't see anything
07:11 plobsing ShaneC: https://svn.parrot.org/parrot/trunk/PLATFORMS
07:12 ShaneC thanks
07:12 dolmen joined #parrot
07:14 dalek parrot: r46433 | plobsing++ | trunk (3 files):
07:14 dalek parrot: allow named arguments in long-form pcc_sub calls (TT1030)
07:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46433/
07:15 ShaneC anyone know how well parrot is currently suited to embedding?  I know I've seen some progress on getting it into Postgres
07:17 ShaneC asking because I've been trying to think of a good way to contribute for a while, my day job is a game dev and I'm working on LUA in our engine atm -- curious if getting parrot onto the ps3/360 would be a huge challenge
07:17 ShaneC (powerpc)
07:19 sorear parrot will run on ppc fine
07:19 sorear however
07:20 ShaneC yea i saw linux ppc listed
07:20 sorear our current build system is allergic to cross compilers
07:20 sorear does ps3-linux have a native gcc port?
07:20 sorear if so, you shouldn't have difficulties
07:20 ShaneC i wouldn't be running linux on the ps3
07:20 ShaneC but gcc is available
07:20 sorear no, but the architecture would be the same
07:20 sorear I think
07:21 sorear purl, khairul?
07:21 purl i haven't a clue, sorear
07:21 ShaneC we don't use gcc for our ps3 builds, but sony's other compiler is very gcc compatible
07:21 sorear purl, ash_?
07:21 purl i guess ash_ is John Harrison or John Harrison <mailto:john@greaterthaninfinity.com>
07:21 sorear ShaneC: that's not the point
07:21 JimmyZ plobsing: using TT #1030 will be more useful, then Trac can add a link to the ticket.
07:21 ShaneC (along with very msvc compatible, interestingly)
07:21 sorear ShaneC: your compiler needs to spit out executables that can be run *locally*
07:21 sorear ie it needs to either generate fat binaries or run on the ps3
07:22 ShaneC well, it would be embedded into the game engine (if that matters)
07:22 sorear I don't know what that means
07:22 sorear Are you saying you're going to scrap the entire build system?
07:22 ShaneC there would not be a standalone parrot executable
07:23 sorear That doesn't matter at all
07:23 ShaneC sorear: i'd hope i wouldn't have to, but i don't really know what would be required
07:23 ShaneC i've done some work with parrot but never modified the parrot code/build at all
07:23 sorear If you plan to, under any situation, compile any part of Parrot for a different computer than the development machine, for *any* such circumstance
07:24 sorear you can either 1. give up now 2. coordinate with the SoC student (khairul?) who is adding cross compiler support
07:24 ShaneC ah, interesting, i'll have to contact him
07:25 sorear the synopsis of the SoC is to port Parrot to RTEMS (a midrange embedded OS that tends to show up in spacecraft and the like)
07:25 sorear but 98% of it is "make Parrot cross-compilable and POSIX-agnostic"
07:26 plobsing JimmyZ: thanks for the tip
07:26 ShaneC sorear: i'm assuming scrapping the build system is not feasible?
07:26 ShaneC lua is pretty simple to embed, you can just shove the lua source into your project, set a define, and compile
07:27 fperrad joined #parrot
07:27 sorear Erm, was that an insult?
07:27 sorear I can never tell
07:27 ShaneC lol, no
07:27 ShaneC im a long time perl/parrot fan ;-)
07:28 ShaneC but i'm asking whether something like that is possible with parrot
07:29 sorear Not now, as I just tried to explain
07:29 ShaneC my apologies, i do a lot of coding, but i don't normally touch the build process much
07:29 sorear Rather little of Parrot is actually C
07:30 plobsing ShaneC: (AFAICT) part of the difference between lua and parrot that increases the challenge of embedding is Parrot provides more builtin functionality (which it needs to get from somewhere)
07:31 ShaneC do you think just starting with the c pieces would be viable?  for instance, if i just wanted to get pasm up and running
07:31 sorear No, because the interpreter is written in a custom macro language and generated at build time by a large pile of system-querying Perl 5
07:31 ShaneC and leave the (insert language) -> pasm compilers part of the offline build
07:32 sorear collectively "ops2c"
07:32 sorear the datatype engine is set up with a different but related custom macro engine
07:32 plobsing ShaneC: IMCC (the subsystem that handles PASM and PIR) is one of the hairiest, most tightly coupled systems in Parrot. Good luck extracting it.
07:32 sorear once you have both of those - and the configuration data, most of which is extracted from "perl -V" - you can build "miniparrot"
07:33 sorear "miniparrot" is then used to run a second bank of macro processors written in PIR
07:33 ShaneC so essentially the problem with cross compiling is that the build process needs the target machine to have perl?
07:33 sorear yes, perl and parrot
07:33 ShaneC or at least to know bout its perl
07:33 ShaneC about*
07:34 sorear no, it needs to have perl
07:34 sorear because you need to run the Perl 5 part of the build system on a machine with the same characteristics
07:35 sorear then, you can transfer the generated C to your development machine and build a miniparrot
07:35 sorear then transfer *that* *back* to the PS3
07:35 sorear Man.  You do not scare eaily.
07:36 ShaneC lol
07:37 ShaneC i <3 challenging programming ;-)
07:37 sorear Know what you are getting yourself into.
07:37 ShaneC yea, it definitely sounds very non trivial
07:37 sorear Think very carefully about whether you actually want to spend three man months helping us and humanity
07:37 ShaneC are there any long term plans (the cross compiling gsoc project aside) to remove perl from the build process?
07:38 sorear Instead of the expedient approach of simply embedding a mature script engine like Perl5 or Lua
07:38 sorear Yes.
07:38 sorear In that it is a goal.
07:38 sorear No plans have been made.
07:38 ShaneC oh, i'm not suggesting that we would use parrot for our production scripting
07:39 ShaneC lua is definitely the choice, but i have access and experience with console dev, and getting parrot onto those platforms would be pretty cool
07:39 sorear Incidentally, the only mature language that runs on Parrot is Lua.
07:40 sorear purl: coke?
07:40 purl coke is Will Coleda <mailto:will@coleda.com> or perpetually annoyed. or magical ticket robot or (if Diet), something that turns into formaldehyde in my blood. or getting those data_json issues in Coke's build. or tempted to remove "ticket_append" for authenticated. or on OSX 10.6.3
07:41 ShaneC well, i really appreciate the input, i'll dig into some of the things you mentioned and mull it over
07:41 ShaneC thanks!
07:41 fperrad_ joined #parrot
08:02 khairul hi sorear, i think the one doing the RTEMS port is bubaflub?
08:03 sorear ah thanks.
08:03 sorear ShaneC:
08:03 ShaneC i'll scan through the mailing list and try to find it
08:36 dalek parrot: r46434 | jimmy++ | trunk/include/parrot/context.h:
08:36 dalek parrot: cleaned up macros
08:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46434/
08:40 jan_ joined #parrot
08:48 jan_ joined #parrot
08:53 dalek parrot: r46435 | jimmy++ | trunk/src/call (2 files):
08:53 dalek parrot: use macro instead of inline fuction, C89 doesn't like it
08:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46435/
09:27 JimmyZ parrot-dev blocked my mail? :(
09:27 JimmyZ msg chromatic  since there is a macro in the context.h, so I just changed it to use that macro.
09:27 purl Message for chromatic stored.
09:28 JimmyZ msg chromatic  when I saied ' C89 doesn't like it', I meant 'by the way, C89 doesn't like it'.
09:28 purl Message for chromatic stored.
09:40 moritz bacek: with r46435 I still get 4 non-zero exit stati in a rakudo spectest run
09:42 moritz oh wow, just read that the plural of "status" is also "status", but the 'u' in there is pronounced slightly different
09:42 kjeldahl joined #parrot
10:06 lucian joined #parrot
10:18 iblechbot joined #parrot
10:54 JimmyZ joined #parrot
11:18 JimmyZ joined #parrot
11:20 JimmyZ Hello, any objection to Make fast core the default core?
11:21 arnsholt moritz: In Latin, it's a fourth declension noun, so yeah. Not sure if the pronounciations differed much though
11:27 Whiteknight joined #parrot
11:35 dalek tracwiki: v8 | jimmy++ | PerformanceImprovements
11:35 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Perform​anceImprovements?version=8&amp;action=diff
11:36 dalek parrot: r46436 | jimmy++ | trunk/src/main.c:
11:36 dalek parrot: make fast core the default core, see PerformanceImprovements
11:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46436/
11:46 joeri joined #parrot
11:52 kid51 joined #parrot
11:55 kid51 make test failures in trunk at r46436
11:56 kid51 http://smolder.plusthree.com/ap​p/projects/report_details/33720
11:58 nopaste "kid51" at 192.168.1.3 pasted "make test failures observed in trunk at r46436" (83 lines) at http://nopaste.snit.ch/20508
11:59 kid51 Bisecting; everything was okay at r46425
12:00 dalek rakudo: c18ef37 | (Solomon Foster)++ | src/core/Range.pm:
12:00 dalek rakudo: Switch prefix:<^> to use +$max internally.
12:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​18ef3793aea1aa37bceee617002b35b5cab7221
12:04 kid51 Bisecting:  the failing tests were passing at r46430
12:10 mikehh kid51: I got the tests passing at r46435, failing at r46436
12:11 JimmyZ joined #parrot
12:11 mikehh JimmyZ: it looks like r46436 generates some test failures
12:12 JimmyZ (fast core)-- :(
12:13 kid51 JimmyZ:  So there's the answer to your question:  the *tests* object to making fast core the default core
12:15 kid51 mikehh:  Confirmed.  The failing tests passed at both r46433 and r46435.
12:15 kid51 Fortunately, reverting 46436 involves changing only 4 keystrokes :-)
12:18 JimmyZ reverted
12:22 kid51 Thanks
12:24 dalek parrot: r46437 | jimmy++ | trunk/src/main.c:
12:24 dalek parrot: revert r46436, some tests failed
12:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46437/
12:25 dalek tracwiki: v9 | jimmy++ | PerformanceImprovements
12:25 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Perform​anceImprovements?version=9&amp;action=diff
12:26 mikehh interesting - make testf passes - i need to look maybe some TODO's
12:26 kid51 codestring branch PASS make test at r46437
12:28 JimmyZ annotations have problems with fast core
12:35 nopaste "kid51" at 192.168.1.3 pasted "r46437: one codingstd failure" (14 lines) at http://nopaste.snit.ch/20509
12:36 mikehh kid51: I think this is a work-in-progress by plobsing - I got different failures earlier
12:37 mikehh although I think this sort of change needs to be done in a branch
12:38 mikehh that's with assert-args
12:39 kid51 mikehh:  Yes, almost by definition, "work-in-progress" implies "should be done in branch"
12:44 mikehh I was going to try and fix them - but then an ack showed that new stuff had been added but not yet implemented and am not happy with make headerizer
13:21 dalek rakudo: ee6ec74 | (Solomon Foster)++ | src/core/Pair.pm:
13:21 dalek rakudo: Add infix:<cmp> for pairs.
13:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​e6ec74defd21833de588a8814740ec578442c49
13:34 Andy joined #parrot
13:42 rurban joined #parrot
14:00 rurban_ joined #parrot
14:19 dalek rakudo: e113d85 | (Solomon Foster)++ | src/core/Array.pm:
14:19 dalek rakudo: Add proto for unshift so we can use named args.
14:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​113d8591263fb1243b4bc2956505cc13370b98b
14:38 Andy joined #parrot
14:42 dalek rakudo: 73a3d3e | moritz++ | t/spectest.data:
14:42 dalek rakudo: [t/spec] run another test file
14:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​3a3d3e9d4d0a025b5b60b2d4036d87ed585ef4c
15:06 Coke msg jimmyZ: This is probably a translation issue, but I don't see the difference between your two C89 statements.
15:06 purl Message for jimmyz stored.
15:07 JimmyZ Hi
15:08 Coke msg plobsing ah, looks like you're saying it doesn't do anything these days. that makes sense, then. Thanks. =-)
15:08 purl Message for plobsing stored.
15:08 Coke plobsing++ #imcc
15:08 JimmyZ that's just code cleaning up
15:09 JimmyZ there is already a macro
15:11 JimmyZ LTA?
15:11 purl LTA is less than adequate, see also http://acronyms.thefreedictionary.com/LTA or "Less Than Awesome" in Rakudo world :)
15:11 dalek rakudo: ad46ef8 | moritz++ | t/spectest.data:
15:11 dalek rakudo: run two more test files
15:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​d46ef8782f5c53e0b5b787e437ead4544928b1a
15:14 Coke so, in this brave new string world, what's the right way to do a substring that doesn't keep a copy of the full original string?
15:22 Coke msg sorear got your message. Trying to find where I can untangle it.
15:22 purl Message for sorear stored.
15:29 davidfetter joined #parrot
15:38 s1n left #parrot
15:43 tetragon joined #parrot
16:08 dalek rakudo: 27e05a8 | (Solomon Foster)++ |  (3 files):
16:08 dalek rakudo: Add dead simple preliminary implementation of Sop, and turn on the only test we were able to find for it.
16:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​7e05a8ff044c20295695d56ee10f4d5691df2b6
16:10 davidfetter joined #parrot
16:30 lucian joined #parrot
17:01 sorear Coke: I think it would be better to start by factoring 'lineof' out of CodeString
17:01 sorear Coke: then NQP-rx wouldn't need to play stupid tricks with input
17:02 sorear because, even if you fix substring, you still have a huge amount of cpu time spent making short-lived clones...
17:28 Mokurai joined #parrot
17:51 plobsing joined #parrot
18:29 snarkyboojum joined #parrot
18:42 Mokurai1 joined #parrot
18:50 kjeldahl joined #parrot
19:09 jan joined #parrot
19:18 rbuels joined #parrot
19:24 sorear Why does CodeString do so many things?
19:25 moritz maybe the line number tracking can be moved to a utility PMC that is not a string itself
19:25 moritz now that strings are immutable
19:48 Andy joined #parrot
19:49 dalek parrot: r46438 | plobsing++ | trunk/compilers/imcc (4 files):
19:49 dalek parrot: remove vestigial tokens INC, DEC, and NEW
19:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46438/
19:51 Psyche^ joined #parrot
20:00 sorear moritz: Good idea... how would that look?
20:04 theory joined #parrot
20:14 sorear What files do I need to change to add a new core PMC?
20:20 plobsing sorear: just dump it into src/pmc. It will be auto-detected. You'll have to bump PBC_COMPAT and regen the native pbcs (requires x86) as well
20:20 sorear ...why?
20:21 plobsing because core pmcs are numbered alphabetically and PMC numbering is part of PBC
20:21 sorear oh.  maybe I don't want to add a core pmc then.
20:21 moritz sorear: a StringMarker PMC; constructor takes a string; it has get_line_by_position method or so
20:22 sorear also, MANIFEST.generated contains mention of /codestring/ and other core pmcs
20:22 plobsing oh yeah, theres a test that will complain at you about that =-D
20:23 sorear how about adding standard dynpmcs, then?
20:26 plobsing not sure. they likely get auto-detected from the src/dynpmc directory. there is no special numbering on dynpmcs, so you're in the clear wrt PBC_COMPAT
20:28 Andy joined #parrot
20:39 dalek parrot: r46439 | petdance++ | trunk/compilers/imcc (3 files):
20:39 dalek parrot: re-headerized
20:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46439/
20:55 dalek parrot: r46440 | plobsing++ | trunk/compilers/imcc (5 files):
20:55 dalek parrot: eliminate special parsing of 'new' opcode for old-style class numbering
20:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46440/
21:07 Andy joined #parrot
21:11 dalek parrot: r46441 | petdance++ | trunk (4 files):
21:12 dalek parrot: include/parrot/embed.h is now headerized, although there are some imperfections with two redundant headers cut-and-pasted in there
21:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46441/
21:12 dalek parrot: r46442 | plobsing++ | trunk/compilers/imcc (5 files):
21:12 dalek parrot: eliminate old code handling special NCI calling convention
21:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46442/
21:12 dalek parrot: r46443 | plobsing++ | trunk/DEPRECATED.pod:
21:12 dalek parrot: deprecate .nci_call syntax
21:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46443/
21:24 dolmen joined #parrot
21:25 dalek TT #1623 created by plobsing++: [DEPRECATED] .nci_call
21:25 dalek TT #1623: http://trac.parrot.org/parrot/ticket/1623
21:28 dalek parrot: r46444 | plobsing++ | trunk/compilers/imcc (6 files):
21:28 dalek parrot: eliminate pcc_sub_t.calls_a_sub, leaving pcc_sub_t.yield
21:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46444/
21:28 dalek parrot: r46445 | plobsing++ | trunk/compilers/imcc/pbc.c:
21:28 dalek parrot: narrow variable scope
21:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46445/
21:31 plobsing are bit-fields C89? I see plenty of single bit flags in 'int' containers. I could significantly decrease the size of several objects.
21:44 dalek parrot: r46446 | petdance++ | trunk/lib/Parrot/Headerizer.pm:
21:44 dalek parrot: Fixed a potential bug found by Perl::Critic
21:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46446/
21:47 sorear bit-fields are C89, but their behavior is very loosely standardized
21:48 sorear you can't portably use them for anything other than compressing structures
21:49 sorear the most pessimistic intepretation of C89 bitfields is that they are allocated to an intmax_t
21:50 sorear so you should start bit field groups at pointer-aligned areas if you don't want padding
21:50 sorear also, compilers are allowed to not support splitting bit fields between bytes
21:50 sorear so groups of bit fields should ideally add up to 8 bits each
21:52 sorear the legal basic types of a bitfield are "signed int" and "unsigned it"
21:52 sorear int
21:52 sorear do not use "int", as signedness in this case is undefined
22:00 dalek parrot: r46447 | petdance++ | trunk/lib/Parrot/Test.pm:
22:00 dalek parrot: hiding the namespace mucking in a function
22:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46447/
22:03 lucian joined #parrot
22:13 jjore joined #parrot
22:21 jjore joined #parrot
22:30 triddle joined #parrot
22:44 hercynium joined #parrot
22:59 plobsing joined #parrot
23:11 jjore joined #parrot
23:18 mariano joined #parrot
23:23 jjore joined #parrot
23:38 plobsing why is '~' xor in PIR, not '^' ?
23:54 mariano joined #parrot

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

Parrot | source cross referenced