Camelia, the Perl 6 bug

IRC log for #parrot, 2011-01-23

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:15 kid51 joined #parrot
01:02 dalek parrot: 09d0567 | jkeenan++ | config/gen/makefiles/root.in:
01:02 dalek parrot: Add 'test_prep' prerequisite to several testing targets so that user can call them after configuration and get a parrot executable with which to run the tests.
01:02 dalek parrot: review: https://github.com/parrot/parrot/commit/09d05672d5
01:26 dalek parrot: 727bbd2 | jkeenan++ | / (2 files):
01:26 dalek parrot: Parrot_Test.t needs parrot executable, so we need to add 'test_prep' prerequisite to 'perl_tests' target.
01:26 dalek parrot: review: https://github.com/parrot/parrot/commit/727bbd203c
01:45 hudnix joined #parrot
02:00 whiteknight left #parrot
02:03 whiteknight joined #parrot
02:05 plobsing ping whiteknight
02:05 whiteknight pong
02:06 whiteknight how are you tonight, plobsing?
02:06 plobsing can I kill Parrot_run_native() and the enternative op? they're in embed.c
02:07 whiteknight plobsing: kill with prejudice
02:07 plobsing \o/ goodbye global variable!
02:08 whiteknight and if your mighty hellfire damages the surrounding code, so be it
02:08 plobsing the only thing it will damage is large swaths of (old) embedding tests. not sure if you care about those.
02:09 whiteknight ...no
02:09 whiteknight kill those too
02:11 whiteknight did you get my email from earlier?
02:11 KaeseEs how much traffic does the mailing list tend to get btw?
02:12 whiteknight KaeseEs: not too much
02:12 plobsing whiteknight: no sorry. I was out of commission most of today. will read now.
02:13 whiteknight okay, no rush
02:32 wagle left #parrot
02:34 wagle joined #parrot
02:48 whiteknight plobsing: I'm heading off to bed now. We can chat tomorrow or whenever
02:49 plobsing ok
02:49 whiteknight left #parrot
03:09 hudnix left #parrot
03:28 dalek parrot: df1c5ac | plobsing++ | compilers/imcc/ (4 files):
03:28 dalek parrot: string constants are stored separate from (and before) PMC constants now
03:28 dalek parrot: review: https://github.com/parrot/parrot/commit/df1c5ac267
03:28 dalek parrot: ca961cb | plobsing++ | src/ops/core_ops.c:
03:28 dalek parrot: ops2c --core
03:28 dalek parrot: review: https://github.com/parrot/parrot/commit/ca961cbba7
03:28 dalek parrot: 986fa1b | plobsing++ | / (7 files):
03:28 dalek parrot: eliminate Parrot_run_native, enternative, and run_native (old embed API, non-reentrant)
03:28 dalek parrot: review: https://github.com/parrot/parrot/commit/986fa1b535
03:28 dalek parrot: d7b03e7 | plobsing++ | src/ops/core (2 files):
03:28 dalek parrot: CONST_STRING() -> Parrot_string_new_constant
03:28 dalek parrot: review: https://github.com/parrot/parrot/commit/d7b03e73bb
03:28 dalek parrot: 2cac97d | plobsing++ | t/src/ (2 files):
03:28 dalek parrot: eliminate/fix tests depending on Parrot_run_native
03:28 dalek parrot: review: https://github.com/parrot/parrot/commit/2cac97dffd
03:28 dalek parrot: 476000d | plobsing++ | t/compilers/opsc/06-opsfile.t:
03:28 dalek parrot: update opcount in test
03:28 dalek parrot: review: https://github.com/parrot/parrot/commit/476000d691
03:30 ttbot Parrot 986fa1b5 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/889.txt (http://tt.taptinder.org/buildstatus/pr-Parrot)
03:35 plobsing ah, ttbot my old nemesis. we meet again.
04:01 dalek parrot: 26aa06e | plobsing++ | / (5 files):
04:01 dalek parrot: eliminate unused wrapper__ opcode
04:01 dalek parrot: review: https://github.com/parrot/parrot/commit/26aa06e8c3
04:11 kid51 left #parrot
05:18 dalek parrot: de77515 | plobsing++ | t/compilers/opsc/06-opsfile.t:
05:18 dalek parrot: update core ops count in test
05:18 dalek parrot: review: https://github.com/parrot/parrot/commit/de77515a31
05:18 dalek parrot: 2f0d61c | plobsing++ | / (3 files):
05:18 dalek parrot: remove remaining references to Parrot_run_native
05:18 dalek parrot: review: https://github.com/parrot/parrot/commit/2f0d61cee4
05:18 dalek parrot: 2bc2128 | plobsing++ | / (4 files):
05:18 dalek parrot: remove remaining references to enternative and wrapper__
05:18 dalek parrot: review: https://github.com/parrot/parrot/commit/2bc21281af
05:45 Patterner left #parrot
05:45 Psyche^ joined #parrot
05:45 Psyche^ is now known as Patterner
05:51 rurban_ joined #parrot
05:55 rurban left #parrot
05:55 rurban_ is now known as rurban
07:51 fperrad joined #parrot
08:16 fperrad_ joined #parrot
08:19 fperrad left #parrot
08:20 fperrad_ is now known as fperrad
09:27 theory left #parrot
09:31 fperrad_ joined #parrot
09:34 fperrad left #parrot
09:34 fperrad_ is now known as fperrad
09:57 dalek parrot: be3c419 | (Gerd Pokorra)++ | tools/release/ (2 files):
09:57 dalek parrot: fix typo remove not allowed comma for crow program
09:57 dalek parrot: review: https://github.com/parrot/parrot/commit/be3c419b31
09:58 cogno joined #parrot
10:16 cogno left #parrot
10:17 dalek lua: d9c8363 | fperrad++ | t/lua-TestMore:
10:17 dalek lua: update submodule lua-TestMore
10:17 dalek lua: review: https://github.com/fperrad/lua/commit/d9c8363f29
10:50 dalek lua: c45c4d3 | fperrad++ | t/lua-TestMore:
10:50 dalek lua: update submodule lua-TestMore
10:50 dalek lua: review: https://github.com/fperrad/lua/commit/c45c4d338d
11:09 cogno joined #parrot
11:13 aantn joined #parrot
11:16 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#4814) fulltest) at 3_0_0-196-gbe3c419 - Ubuntu 10.10 i386 (g++-4.5)
11:18 cogno left #parrot
11:18 cogno joined #parrot
11:34 whiteknight joined #parrot
11:47 fperrad_ joined #parrot
11:49 fperrad left #parrot
11:50 fperrad_ is now known as fperrad
11:55 jan left #parrot
12:17 dalek lua: b77264b | fperrad++ | lua/lib/luaaux.pir:
12:17 dalek lua: now, parrot is strict with string encoding
12:17 dalek lua: review: https://github.com/fperrad/lua/commit/b77264ba93
12:17 dalek TT #1872 closed by mikehh++: t/pmc/fixedstringarray.t fails coretest 64 bit with g++-4.5
12:17 dalek TT #1872: http://trac.parrot.org/parrot/ticket/1872
12:33 dalek TT #1987 created by mikehh++: Warnings from make headerizer
12:34 dalek TT #1987: http://trac.parrot.org/parrot/ticket/1987
12:41 jan joined #parrot
12:44 kid51 joined #parrot
12:46 dalek parrot/whiteknight/imcc_interfaces: bd68dbf | Whiteknight++ | compilers/imcc/main.c:
12:46 dalek parrot/whiteknight/imcc_interfaces: remove old section of imcc_run which was handling the -r arguments. That's in the frontend now
12:46 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/bd68dbffd4
12:46 dalek parrot/whiteknight/imcc_interfaces: ffd1f41 | Whiteknight++ | frontend/parrot/main.c:
12:46 dalek parrot/whiteknight/imcc_interfaces: start rearranging the frontend code, adding in some stub logic to properly handle -r and -o from the frontend instead of in IMCC
12:46 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/ffd1f4115f
12:46 dalek parrot/whiteknight/imcc_interfaces: 6e800f9 | Whiteknight++ | frontend/parrot/main.c:
12:46 dalek parrot/whiteknight/imcc_interfaces: +func docs
12:46 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/6e800f98e3
12:46 dalek parrot/whiteknight/imcc_interfaces: 2f0411b | Whiteknight++ | src/embed/api.c:
12:46 dalek parrot/whiteknight/imcc_interfaces: Add a new prototype API function to write a PackFile PMC out to a .pbc file. This will be used to implement the -o and -r commandline options in the front-end
12:46 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/2f0411b6b5
12:46 dalek parrot/whiteknight/imcc_interfaces: 9aac389 | Whiteknight++ | include/parrot/api.h:
12:46 dalek parrot/whiteknight/imcc_interfaces: headerize
12:46 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/9aac389583
12:46 dalek parrot/whiteknight/imcc_interfaces: fa228c7 | Whiteknight++ | / (3 files):
12:46 dalek parrot/whiteknight/imcc_interfaces: handle -o and -r options from the frontend. delete some code in IMCC that checked them for errors, that wrote packfiles out to file, etc. Some tests fail, look mostly like tests for exact text of error message
12:46 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/fa228c7078
12:46 cogno left #parrot
13:06 dalek TT #1873 closed by jkeenan++: Windows2000 version requirement impeded build
13:06 dalek TT #1873: http://trac.parrot.org/parrot/ticket/1873
13:08 dalek nqp-rx/nom: e282329 | jonathan++ | src/HLL/Grammar.pm:
13:08 dalek nqp-rx/nom: Get two of the cheats into HLL::Grammar proper. This first one adds .O (just a wrapper around the PIR) and the second translates .panic into NQP.
13:08 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/e282329052
13:14 kid51 whiteknight: ping
13:14 fperrad_ joined #parrot
13:17 fperrad left #parrot
13:18 fperrad_ is now known as fperrad
13:19 aantn left #parrot
13:22 dalek TT #30 closed by jkeenan++: make shared libparrot with an already installed  shared libparrot
13:22 dalek TT #30: http://trac.parrot.org/parrot/ticket/30
13:22 dalek TT #1123 closed by jkeenan++: Make Test errors on OS X 10.6.1
13:22 dalek TT #1123: http://trac.parrot.org/parrot/ticket/1123
13:33 whiteknight kid51: pong
13:35 kid51 Andrew, you are set up to be the automatic assignee for certain categories of Trac tickets, including 'docs'.
13:35 kid51 I wonder whether you really want to take something like ...
13:35 whiteknight I am set up for some categories. I don't know which ones
13:35 whiteknight I know I'm set up for the embedding/extending stuff. Docs may have been an old thing
13:36 kid51 ... TT #1976
13:36 whiteknight no, that's probably something for dukeleto
13:37 kid51 I was re-reading one of your blog posts from about Nov 21 yesterday.  It seemed to suggest that that was when you took over several categories.
13:37 whiteknight I probably don't want to be automatic assignee for docs
13:37 whiteknight kid51: I did take over a few categories around then, but I think I was already set up for a handful previously
13:37 kid51 Can you go to the admin interface and check which categories are assigned to you?
13:37 whiteknight okay
13:41 whiteknight done
13:48 cogno joined #parrot
13:50 dalek parrot: a823c01 | (Gerd Pokorra)++ | tools/release/templates.json:
13:50 dalek parrot: change the text output a little bit
13:50 dalek parrot: review: https://github.com/parrot/parrot/commit/a823c01823
13:51 rurban_ joined #parrot
13:55 rurban left #parrot
13:55 rurban_ is now known as rurban
14:01 whiteknight ooh, I have a commit coming up that rips out a LOT of dead IMCC code
14:08 JimmyZ joined #parrot
14:08 cogno left #parrot
14:09 dalek nqp-rx/nom: 250d2a3 | jonathan++ | src/HLL.pir:
14:09 dalek nqp-rx/nom: Re-shuffle include order so that for the earlier bootstrap stages the old cheats in HLL::Grammar take precedence.
14:09 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/250d2a3fec
14:09 dalek nqp-rx/nom: a0f4265 | jonathan++ | src/HLL/Grammar.pm:
14:09 dalek nqp-rx/nom: Add LANG, MARKER, MARKED. Partial ports to NQP, with some embedded PIR still.
14:09 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/a0f4265583
14:44 cogno joined #parrot
14:45 dalek TT #1988 created by jkeenan++: lib/Parrot/Pmc2c/PMCEmitter.pm:  Is this file useless?
14:45 dalek TT #1988: http://trac.parrot.org/parrot/ticket/1988
14:46 dalek nqp-rx/nom: 583c7bf | jonathan++ | src/HLL/Grammar.pm:
14:46 dalek nqp-rx/nom: Add EXPR and related, plus ternary, to HLL::Grammar.
14:46 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/583c7bfaca
15:02 dalek nqp-rx/nom: 659a99f | jonathan++ | src/HLL/Grammar.pm:
15:02 dalek nqp-rx/nom: Get the remaining HLL::Grammar cheats put into NQP bodies, and in one case just port entirely to PIR. In theory, this should be all that's needed to switch Grammar/Actions over to 6model. In reality, there's some bug(s) somewhere. :-(
15:02 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/659a99f07e
15:08 cogno left #parrot
15:40 cogno joined #parrot
15:40 kid51 left #parrot
15:51 dalek parrot/whiteknight/imcc_interfaces: 661f90d | Whiteknight++ | / (25 files):
15:51 dalek parrot/whiteknight/imcc_interfaces: remove the PASM emitter from IMCC. It has never worked, the RT ticket it pointed to was WONTFIX, and the error message was obnoxious. Remove tests which relied on the feature. We have no more tests for the IMCC optimizer, but it's stable and devs aren't exactly lining up to modify it.
15:51 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/661f90d474
16:01 cogno left #parrot
16:07 mberends joined #parrot
16:59 JimmyZ left #parrot
17:20 dalek nqp-rx/nom: 3887fc5 | jonathan++ | src/ (3 files):
17:20 dalek nqp-rx/nom: Switch grammars over to 6model. This includes changes to get protoregexes working again. Sadly, due to some other bug, much is still broken.
17:20 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/3887fc51ce
17:20 dalek nqp-rx/nom: 28c49b3 | jonathan++ | src/Regex/Cursor2.pir:
17:20 dalek nqp-rx/nom: Unbreak language transitioning - probably a copy-pasto.
17:20 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/28c49b3ec9
17:20 dalek nqp-rx/nom: 37173b1 | jonathan++ | src/HLL/Grammar.pm:
17:20 dalek nqp-rx/nom: Fix a translate-o in HLL::Grammar.LANG.
17:20 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/37173b1e85
17:20 dalek nqp-rx/nom: 5763b4a | jonathan++ | t/nqp/45-smartmatch.t:
17:20 dalek nqp-rx/nom: Skip some tests that are Parrot-dependent and could never work in a portable NQP.
17:20 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/5763b4ad47
17:20 dalek nqp-rx/nom: 43af670 | jonathan++ | src/NQP/Actions.pm:
17:20 dalek nqp-rx/nom: Avoid trying to emit meta-object calls for methods/regexes that are written outside of a package; cleans up the last issues with the tests and mostly unbreaks NQP setting compilation.
17:20 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/43af670b86
17:36 theory joined #parrot
17:36 nwellnhof joined #parrot
17:48 dalek parrot/whiteknight/imcc_interfaces: b7727ba | Whiteknight++ | compilers/imcc/ (3 files):
17:48 dalek parrot/whiteknight/imcc_interfaces: remove unnecessary write_pbc field from imcc_info_t
17:48 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/b7727ba369
17:48 dalek parrot/whiteknight/imcc_interfaces: b53d916 | Whiteknight++ | / (6 files):
17:48 dalek parrot/whiteknight/imcc_interfaces: move IMCC preprocess logic into it's own interface function, and call it from the frontend.
17:48 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/b53d916db1
17:48 dalek parrot/whiteknight/imcc_interfaces: 8c2d323 | Whiteknight++ | / (4 files):
17:48 dalek parrot/whiteknight/imcc_interfaces: rearrange the signatures for some IMCC functions so they aren't taking a PMC** argument to output to
17:48 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/8c2d323330
17:48 dalek parrot/whiteknight/imcc_interfaces: c86db10 | Whiteknight++ | frontend/parrot/main.c:
17:48 dalek parrot/whiteknight/imcc_interfaces: remove old localization code. This is handled in the IO system now
17:48 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/c86db1088b
18:08 dalek Heuristic branch merge: pushed 600 commits to parrot/nwellnhof/gc_dynamic_threshold by nwellnhof
18:29 cogno joined #parrot
18:29 whiteknight I'm having too much fun ripping up this old IMCC code
18:29 whiteknight hard to believe this is work
18:31 tadzik ...ing?
18:32 whiteknight no, it works just fine
18:33 jnthn 600 commits? Glad the heuristic merge tracking is implemented!
18:34 tadzik I mean, did you mean "hard to believe this works"?
18:37 whiteknight tadzik: No, I can't believe this is work. Like, people get paid for this
18:37 whiteknight but I'm having too much fun
18:39 dalek parrot/whiteknight/imcc_interfaces: a5ef678 | Whiteknight++ | compilers/imcc/main.c:
18:39 dalek parrot/whiteknight/imcc_interfaces: move all input file logic into the determine_input_file_type function, where it belongs. rip out dead code relating to -r and -o options. imcc_run is small enough to fit on a single screen of code
18:39 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/a5ef678062
18:39 dalek parrot/whiteknight/imcc_interfaces: 2c11c10 | Whiteknight++ | compilers/imcc/main.c:
18:39 dalek parrot/whiteknight/imcc_interfaces: merge compile_to_bytecode into imcc_run. We now have a much clearer picture of what is required to compile a file with IMCC
18:39 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/2c11c10e54
18:39 dalek parrot/whiteknight/imcc_interfaces: 4187a2f | Whiteknight++ | compilers/imcc/main.c:
18:39 dalek parrot/whiteknight/imcc_interfaces: misc cleanups and consolidations
18:39 dalek parrot/whiteknight/imcc_interfaces: review: https://github.com/parrot/parrot/commit/4187a2f7a5
18:41 cogno left #parrot
19:00 cogno joined #parrot
19:11 cogno left #parrot
19:18 cogno joined #parrot
19:33 cogno left #parrot
19:38 dukeleto ~~
19:40 tadzik o/
19:43 dukeleto tadzik: wazzup?
19:44 tadzik dukeleto: learning your favourite math analysis :)
19:47 cotto ~
19:48 cotto seen kid51
19:48 aloha kid51 was last seen in #parrot 6 hours 10 mins ago saying "Can you go to the admin interface and check which categories are assigned to you?".
19:49 dalek parrot: dff0be2 | plobsing++ | src/p (3 files):
19:49 dalek parrot: silence headerizer warnings
19:49 dalek parrot: review: https://github.com/parrot/parrot/commit/dff0be2033
19:54 dukeleto tadzik: hilbert spaces?
19:54 dukeleto cotto: mornin'
19:55 cotto hi dukeleto
19:55 tadzik dukeleto: nah. Integrals on circles, Laurent series, differential equations using the "Operator method" (Laplace transformata)
19:58 dukeleto tadzik: i named my cat after Cauchy's Integral Theorem :)
19:58 tadzik so how do you call him?
19:58 dukeleto her name is Cauchy, and I used to joke that she left a resiude at each pole, but thankfully she doesn't :)
19:58 dukeleto residue, even
19:58 * dukeleto ruins the joke
19:59 dalek nqp-rx/nom: 125d4ab | jonathan++ | src/setting/Hash.pm:
19:59 dalek nqp-rx/nom: Unbreak setting compilation.
19:59 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/125d4ab5ee
19:59 dalek nqp-rx/nom: 910fcac | jonathan++ | src/NQP/ (2 files):
19:59 dalek nqp-rx/nom: Only add the return exception handler when there's a return statement in a routine. On Parrot, adding one to a sub that doesn't use it makes the invocation over 3 times more costly; since EXPR and so forth are now wrapped in NQP subs, we really need to save on this.
19:59 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/910fcac241
19:59 dalek nqp-rx/nom: 6a1bb2a | jonathan++ | src/metamodel/reprs/P6opaque. (2 files):
19:59 dalek nqp-rx/nom: A little sloppy programming saw every attribute get/bind in P6opaque accidentally cause the creation of two GC-ables. This brings that down to zero, as it was intended to be.
19:59 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/6a1bb2a229
19:59 dukeleto tadzik: i assume lots of math jargon is different across English to Polish, so some jokes may not translate well
19:59 tadzik dukeleto: a second ago 3 persons laughed at it :)
20:00 dukeleto cotto: thanks for shedding a tear in my direction about the gcc bug
20:01 cotto ;(
20:01 dukeleto tadzik: what are you hacking on?
20:02 dukeleto tadzik: can you commit the script you used to generate deprecated.json ?
20:02 dukeleto tadzik: we are thinking that we want to use YAML instead, since it is easier for humans to edit and read. And source code still seems to get written by meatbags
20:02 cotto At least it isn't another 323
20:02 tadzik dukeleto: I don't want to share that source code :(
20:03 tadzik unless I must (:
20:03 nwellnhof cotto: i'd consider 323 a Linux bug.
20:03 tadzik and I'm not hacking on anything, I have this math exam tomorror
20:03 cotto a disadvantage is that we'll need a yaml parser
20:04 tadzik isn't there a JSON parser in Parrot?
20:04 dalek parrot: 2d5b09b | nwellnhof++ | src/hash.c:
20:04 dalek parrot: Zero the correct amount of memory when expanding hashes
20:04 dalek parrot:
20:04 dalek parrot: This fixes linear hash iteration. Strange that this hasn't been noticed
20:04 dalek parrot: before.
20:04 dalek parrot: review: https://github.com/parrot/parrot/commit/2d5b09b745
20:05 cotto tadzik, there is one for json
20:05 tadzik http://wklej.org/id/463001/ -- this is this horrible script
20:06 dukeleto tadzik: i have written code at least 100 times worse than that :)
20:06 tadzik the 'depr2' is an output of `pod2text DEPRECATED.pod`
20:06 tadzik ...how is _that_? :)
20:07 tadzik dukeleto: it's the "I'm lazy and I want this done" code ;)
20:07 dukeleto tadzik: gotcha
20:07 cotto That's good.  We have lots of "this is ugly and I want to make it better" people.
20:07 dukeleto cotto: do we want to use YAML if parrot doesn't have a YAML parser yet?
20:08 dukeleto cotto: we can just use Perl 5's YAML.pm, it won't become a dependency, since it is only developers that will generate that file
20:08 cotto I can pretty easily imagine myself getting annoyed with json's lack of multi-line strings.
20:08 cotto wfm
20:09 dukeleto cotto: and I want to make a web interface to deprecated.(json|yaml), so it is easy for people to say "tell me which code is deprecated for this github project" or something like that
20:09 cotto especially since we won't have to write it
20:09 cotto dukeleto, awesome
20:09 * dukeleto really should be working on his TPF grant
20:09 dukeleto nwellnhof: how did you find that bug?
20:10 dukeleto nwellnhof: i don't see a test in that commit. Is that hard to test?
20:11 nwellnhof dukeleto: one of the new tests in hashiterator.t broke when i was hacking on GC related stuff
20:12 cotto dukeleto, http://gcc.gnu.org/bugzilla/buglist.cg​i?quicksearch=volatile+setjmp+warning
20:12 * cotto makes a note for future reference
20:18 whiteknight what's interesting about that bug is that I don't get the warning on every API function, even though every API function calls setjmp in the same way through a macro
20:18 whiteknight weird
20:19 cotto whiteknight, is it safe to say that Parrot_pf_get_current_code_segment and Parrot_pf_get_current_packfile, which return interp->code and interp->initial_pf, should never return NULL?
20:32 dalek parrot: 2cb55d9 | cotto++ | / (4 files):
20:32 dalek parrot: silence remaining headerizer warnings
20:32 dalek parrot: review: https://github.com/parrot/parrot/commit/2cb55d97dd
20:36 cotto plobsing, don't forget to bump PBC_COMPAT when removing an op.
20:36 dalek parrot: 6b0ed4c | mikehh++ | src/packfile/output.c:
20:36 dalek parrot: fix codetest failure - linelength, update copyright and fix header documentation
20:36 dalek parrot: review: https://github.com/parrot/parrot/commit/6b0ed4cfa5
20:40 slavorg left #parrot
20:43 plobsing cotto: with dynops mapping, we no longer need that coarse-grained mechanism for tracking oplib changes. we can use a mechanism for oplib versioning, all the parts are there, with the exception of ops2c, which has no syntax for specifying the version.
20:45 dalek TT #1987 closed by cotto++: Warnings from make headerizer
20:45 dalek TT #1987: http://trac.parrot.org/parrot/ticket/1987
20:48 cotto plobsing, ok.  What would a new mechanism look like?
20:50 cotto whiteknight++ # die "damnit"
20:51 plobsing cotto: no idea. we just need some way of specifying the version that gets into the op_lib_t.
20:51 Kovensky left #parrot
20:51 Kovensky joined #parrot
20:51 plobsing probably a statement in the ops file
20:53 cotto op_lib_t only knows about parrot version, not bytecode,  Maybe we need to move that out of pbcversion.h.
20:53 slavorg joined #parrot
20:53 plobsing op_lib_t has a major, minor, and patch. those are for the oplib itself.
20:54 plobsing that way you don't try to load an incompatible version of a dynoplib
20:55 plobsing currently they are tied to parrot version for core and zeroed for dynops. that is LTA.
20:56 dalek nqp-rx/nom: 5d9c643 | jonathan++ | src/metamodel/how/NQPClassHOW.pm:
20:56 dalek nqp-rx/nom: Fix a really silly bug in method cache construction.
20:56 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/5d9c643269
20:56 dalek nqp-rx/nom: 1e0c709 | jonathan++ | src/metamodel/rakudoobject.c:
20:56 dalek nqp-rx/nom: A cleaned up version of the method finding code. No functional changes, was just easier to reassure myself this bit wasn't the problem by factoring it this way, when hunting the issue fixed in the previous commit.
20:56 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/1e0c70934f
21:02 NotFound whiteknight: I think the throw/rethrow thing is fixable, factoring the common part of throw and rethrow out of the throw functions, calling that common part from the rethrow ones, and cleaning the iterators and backtraces in the non common part of the throw functions.
21:03 dalek nqp-rx/nom: e11a117 | jonathan++ | src/stage0/ (5 files):
21:03 dalek nqp-rx/nom: Update the bootstrap to use 6model during the parsing all the way through the build. At this point, there's still a bunch of clean-up work to do to eliminate the old cursor and the rename Cursor2 back to just Cursor.
21:03 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/e11a117840
21:04 dalek parrot: 8208489 | nwellnhof++ | t/pmc/hashiterator.t:
21:04 dalek parrot: [t] Improve hashiterator.t
21:04 dalek parrot:
21:04 dalek parrot: Now there's a better chance to trigger the condition fixed by my previous
21:04 dalek parrot: commit.
21:04 dalek parrot: review: https://github.com/parrot/parrot/commit/82084894cd
21:04 nwellnhof dukeleto: that's the best i can do
21:04 dukeleto whiteknight: i have been told that the ANSI 89 C standard is ambiguous about what happens when setjmp/longjmp happens, and each compiler does whatever they want
21:04 dukeleto nwellnhof++
21:15 sorear NotFound: I'm pretty sure your last comment to #1981 was meant to go on #1978
21:17 NotFound sorear: uh... Epic historial fail.
21:18 plobsing1 joined #parrot
21:23 plobsing left #parrot
21:25 dalek nqp-rx/nom: ff8c915 | moritz++ | build/PARROT_REVISION:
21:25 dalek nqp-rx/nom: bump PARROT_REVISION to something non-ancient
21:25 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/ff8c915fa6
21:30 dalek nqp-rx/nom: 1401ec6 | jonathan++ | build/gen_parrot.pl:
21:30 dalek nqp-rx/nom: Apply gen_parrot.pl fix as also found in Rakudo's gen_parrot.pl to avoid a Win32 issue.
21:30 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/1401ec647e
21:44 jnthn Hm. I'm guessing Parrot_gc_allocate_fixed_size_storage doesn't give back zeroed out memory?
21:45 sorear Why should it?
21:45 sorear sbrk gives back zeroed memory because free pages can contain other users' sensitive data
21:45 sorear but everything in the Parrot process trusts everything else
21:46 jnthn sorear: I wasn't really saying it should or shouldn't.
21:47 jnthn sorear: Just trying to get confirmation that it did.
21:47 jnthn or didn't
21:47 jnthn :)
21:47 jnthn Found now in the source where it's clear that it doesn't.
21:47 plobsing1 my understanding is that it could eventually, but it hasn't been a high priority
21:48 jnthn plobsing1: It doesn't matter to me either way, tbh.
21:48 jnthn plobsing1: I can easily clear it.
21:49 plobsing1 is now known as plobsing
21:50 plobsing we have functions for zeroed memory somewhere IIRC
21:50 jnthn plobsing: Yes, I was using one of them before.
21:50 jnthn plobsing: But wasn't using the fixed size allocator before
21:51 jnthn Hmm. An unscientific initial result says it shaves 5%-10% off the nqp-rx test suite.
21:52 jnthn (over malloc)
21:52 jnthn Given parsing allocates a LOAD of cursors, which are all the same size, it'll get a good hit rate I guess.
21:53 nwellnhof and there's still a bit room for improvement in the fixed size allocator.
21:53 rurban_ joined #parrot
21:54 jnthn Nice. :)
21:55 rurban left #parrot
21:55 rurban_ is now known as rurban
21:56 dalek nqp-rx/nom: f508992 | jonathan++ | src/metamodel/reprs/P6opaque.c:
21:56 dalek nqp-rx/nom: Switch from malloc to the fixed size allocator for object bodies.
21:56 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/f5089921d4
22:31 PacoLinux left #parrot
22:52 Limbic_Region joined #parrot
22:53 nwellnhof left #parrot
23:11 whiteknight jnthn: the fixed-size allocator shaves 5% off the nqp-rx test suite for you?
23:13 jnthn whiteknight: It wasn't very scientific.
23:13 jnthn It seems consistently about that much faster over a few runs.
23:13 whiteknight still, I'm very happy about any positive results there. that was my design originally and I'm glad to see it's not completely stupid
23:14 whiteknight as nwellnhof mentioned there are some opportunities to improve it
23:14 jnthn whiteknight: Every 6model object allocation now is malloc-less; it's a PMC heaeder and then a body allocated with the FSA.
23:14 jnthn Well, every one using the P6opaque REPR, which is the common case at the moment.
23:14 whiteknight awesome
23:14 jnthn It's almost certainly a win at parse time.
23:14 jnthn When loads of cursor objects are created.
23:15 whiteknight right
23:19 whiteknight cursors are PMCs?
23:20 jnthn Cursors are objects
23:20 jnthn 6model objects live inside a PMC but it's a shim.
23:24 jnthn At heart, 6model on Parrot cares about what PMCs are just the same as it cares about what CLR objects are in the CLR implementation, or JVM objects are in the JVM implementation. They're the language the VM speaks so it has to deal with them.
23:26 jnthn whiteknight: BTW, were you looking at exceptiony stuff of late?
23:26 jnthn If so, see https://gist.github.com/792205 if you have a moment.
23:27 jnthn Summary: the way to do return exception handlers carries some serious overhead.
23:27 jnthn Even when no exception is ever thrown.
23:33 NotFound jnthn: if you want to be able to catch a exception, you should set up a handler.
23:33 jnthn NotFound: HuH/
23:34 jnthn NotFound: That's what the code does. How should it do it correctly/more efficiently?
23:34 jnthn 'foo' is with no handler. 'bar' is the same thing but sets up a handler, which in the end is never used (a quite common case).
23:35 jnthn And just setting up the handler makes things 3-4 times slower.
23:35 NotFound Sorry, english fail. I mean, that's the way is supposed to work. The overhead is required by design,
23:35 jnthn Then the design is wrong.
23:36 jnthn Wasting time at runtime to set up something that exists statically is really not helpful from a performance perspective. :(
23:36 NotFound If the function does not need the handler, the compiler should be able to optimize it out.
23:37 jnthn Well, yes, I've put in a change to do that in nqp-rx. I'm not sure we can do that so easily in full-blown Perl 6.
23:37 jnthn But I think my point still stands. The .Net CLR manages to keep exception regions as static meta-data rather than having per-invocation setup work.
23:38 luben joined #parrot
23:39 NotFound The ExceptionHandler probably can be a const PMC, the push_eh must be at runtime, with the current design.
23:40 fperrad left #parrot
23:40 jnthn I'm not sure which of those two carries the main cost. Could be worth looking into.
23:41 NotFound push_eh is not as cheap as it can be.
23:45 cotto ooc, when exception handers are in use, is it the common case to have more than one exception hander active at once?
23:45 jnthn cotto: In what scope? Within the current block?
23:46 jnthn cotto: From a Perl 6 point of view, the commonest case is just one (the return exception handler).
23:46 jnthn Of course, there's plenty of them "active" up the call chain, but only one liable to be hit at a given point in time.
23:47 whiteknight jnthn: Yes, we've known for a while that ExceptionHandlers should be able to be const'd and not rebuilt every time
23:47 cotto ok.  I'm just thinking about optimization possibilities.
23:47 NotFound cotto: that is one of weak points. We don't optimize the one handler case.
23:48 cotto No.  I was noticing that.
23:49 plobsing why can't we simply define a range of bytecode as being handled by an exception handler similar to how annotations work?
23:49 NotFound cotto: I've looked at that several times, but haven't found a way yet,.
23:50 jnthn plobsing: That's basically what the CLR does, fwiw.
23:50 plobsing I stole the idea from dan's blog
23:50 jnthn :)
23:50 cotto NotFound, that'd still be papering over the problem.  It'd be nice if we could do what plobsing is talking about.
23:51 NotFound RFCs welcome
23:51 plobsing fwiw, I suspect actually throwing exceptions would become more expensive in the general case under such a strategy
23:52 cotto That's not such a big deal if exceptions are exceptional.
23:53 NotFound I suspect that control exceptions aren't exceptional in some langauges.
23:54 cotto I don't think they are in nqp-rx.
23:56 jnthn Yeah, control exceptions can be very normal.
23:56 jnthn At the moment, though, setting up an exception handler seems to cost 2-3 times as much as a sub invocation.
23:57 jnthn So if there's a slight cost increase for throwing, the end result could still be a notable win.
23:58 luben Parrot exceptions are full continuations, they are not cheap
23:58 whiteknight plobsing: in NCI, what does the signature "PJt" mean?
23:58 whiteknight the P and J I understand, the t not so much
23:59 plobsing t = c string
23:59 plobsing null terminated
23:59 plobsing automagical. bad idea.
23:59 whiteknight plobsing: Oh, obviously. What's the symbol for a Parrot string? S?

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

Parrot | source cross referenced