Camelia, the Perl 6 bug

IRC log for #parrot, 2010-12-05

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 s1n left #parrot
00:43 plobsing ~~
00:44 plobsing aloha seen dukeleto
00:44 aloha plobsing: dukeleto was last seen in #parrot 6 hours 17 mins ago saying "cotto: yeah, seems like it".
00:48 plobsing aloha: msg dukeleto Ha, verify if PBC/packfile is valid? There is no such thing. The best you can do is load it and execute potentially garbled code. Enjoy! I'd like very much for this to be possible, but no such mechanism exists, and making one would be tricky with all the packfile code execution that can occur on load (:load subs, pmc constant thaws). If/when it becomes a priority, someone (possibly me) will think something up.
00:48 aloha plobsing: OK. I'll deliver the message.
00:54 plobsing diakopter: (re: imcc line numbers) IMCC *can* generate near-100% accurate line numbers. Just don't put any leading spaces in the code you feed it. The reason is that '" "*' beats '^' in LTM.
00:55 diakopter jnthn: ^^
00:55 theory left #parrot
00:56 jnthn plobsing: The code was coming from .include'd files and it got the entirely wrong .include'd file though. It wasn't just a tiny bit off, it was a whole file off...with another large PIR file .include'd between the two...
00:56 jnthn plobsing: Hmm. It's possible the PIR line number is right and just the included file name is wrong...
00:56 diakopter I looked for that line number in all the files
00:57 diakopter none were relevant
00:57 diakopter it's some sum
00:57 diakopter of line numbers
00:57 diakopter or something
00:58 plobsing imcc goes pretty far out of its way to make includes and macros work. I'm surprised it would fail that catastrophically.
00:58 plobsing can you give me some sample input that makes it fail?
00:58 diakopter 30k lines of pir
00:58 plobsing ok, how do I generate those 30k?
00:59 diakopter well, are you on windows or *n*x
00:59 diakopter :P
00:59 plobsing linux
01:00 jnthn plobsing: It's from the 6model cross-compiler to .Net, but actually you can probably re-produce it without the .Net bits...
01:01 jnthn dotnet/compiler/ folder in the 6model repo, just need to compile the stuff that compile.pir depends on (which are all NQP files)
01:01 jnthn Then add a pir::die into PAST2DNST.pm somewhere. That should do it.
01:04 TypeNameHere_____ joined #parrot
01:04 plobsing jnthn: do you have some kind of make system set up for this somewhere?
01:05 diakopter a Makefile
01:05 jnthn plobsing: Yes, the only thing is that the makefile may want to build the .Net bits too, which you don't really need.
01:05 TypeNameHere_____ left #parrot
01:06 TypeNameHere_____ joined #parrot
01:09 plobsing jnthn: that's only if I want the default build.  make $(pnle "say \$1 if /\.include\s+'([^']+)'/" <compile.pir) # works fine
01:09 plobsing pnle=perl -nlE
01:09 sorear alternatively, you could just make the pir and scp it to feather.perl6.nl:/home/diakopter/public_html
01:09 sorear this is what I did to give 6MB of broken MSIL to the Mono folks
01:10 sorear well, /home/sorear
01:10 diakopter :)
01:14 gbacon left #parrot
01:21 whiteknight joined #parrot
01:22 sorear hello whiteknight
01:22 sorear Kristaba: ping
01:23 whiteknight hello
01:24 whiteknight prepare yourselves. incoming commits
01:24 dalek parrot/embed_api2: 9d84c87 | Whiteknight++ | src/ (3 files):
01:24 dalek parrot/embed_api2: be more robust about (setting) and finding information about the thrower context of an exception, because we need that in places where we didn't need to.
01:24 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/9d84c87523
01:25 dalek parrot/embed_api2: 5b6a239 | Whiteknight++ | / (8 files):
01:25 dalek parrot/embed_api2: Add a new, temporary hack API for wrapping up IMCC so we can catch errors thrown from it. IMCC is not in libparrot, but acts like it is. Tweak some stuff for tests. We have a few tests failing because of bad error message formatting, but it all looks good to me so I don't understand the problem. All tests for functionality pass, including one TODO test passing in exit.t
01:25 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/5b6a239ac3
01:25 dalek parrot/embed_api2: e1ced3e | Whiteknight++ | src/embed/api.c:
01:25 dalek parrot/embed_api2: add a note explaining this stupid function
01:25 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/e1ced3e3a3
01:25 dalek parrot/embed_api2: f6b62ed | Whiteknight++ | src/main.c:
01:25 dalek parrot/embed_api2: fix error message formatting. All tests pass now
01:25 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/f6b62eddfb
01:25 dalek parrot/embed_api2: 2204362 | Whiteknight++ | t/op/exit.t:
01:25 dalek parrot/embed_api2: un-TODO the exit test that is now always passing
01:25 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/220436222c
01:25 dalek parrot/embed_api2: 1216a51 | Whiteknight++ | src/embed/api.c:
01:25 dalek parrot/embed_api2: quick initial pass for codestd
01:25 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/1216a51d4f
01:25 dalek parrot/embed_api2: 709eae7 | Whiteknight++ | / (3 files):
01:25 dalek parrot/embed_api2: add in a handful of additional API functions, though they aren't being used yet.
01:25 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/709eae7acc
01:32 kid51 joined #parrot
01:36 sorear whiteknight: you managed to kick imcc out of libparrot !?
01:40 kid51 That's what *I* call *refactoring*!
01:42 whiteknight sorear: no, not yet
01:42 whiteknight eventually
01:42 kid51 He's preparing the eviction notice!
01:43 kid51 But first, call in the cage cleaners to clean up those codingstd fails!
01:45 whiteknight kid51: yes, need lots of codestd fixes
01:45 whiteknight I have some of them listed as GCI tasks, but no takers yet
01:49 bacek left #parrot
01:52 kid51 whiteknight: I've PASSed 'make test' in embed_api2 branch on linux/i386 -- but am still failing on darwin/ppc.
01:53 whiteknight kid51: linux is where I do my development, so it should be passing there. I'm surprised by the darwin/ppc failures. Nopaste?
01:53 kid51 momentito
01:54 nopaste "kid51" at 192.168.1.3 pasted "embed_api2 branch: build failures on Darwin/PPC" (305 lines) at http://nopaste.snit.ch/26531
01:55 whiteknight hmm, thats extremely weird
01:57 dalek parrot/embed_api2: 540a832 | jkeenan++ | src/ (4 files):
01:57 dalek parrot/embed_api2: [codingstd] Mostly linelength fixes.
01:57 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/540a832b9b
01:57 whiteknight I don't know what would cause those failures. The two CONST_STRING definitions look fine to me
01:57 whiteknight they're on one line, not broken up onto multiple lines
01:58 whiteknight kid51: I'll assume you've done all the due-diligence, make realclean and all?
02:02 kid51 Yes.
02:02 kid51 whiteknight:  Re codingstd, are you following the bacek approach of temporarily putting TODO items in c++-style comments?
02:03 kid51 There are also some lines like this:   //ASSERT_ARGS(Parrot_gc_set_system_type)
02:05 dalek parrot/embed_api2: 9703ef5 | jkeenan++ | / (2 files):
02:05 dalek parrot/embed_api2: [codingstd] C-style coda needed. No cuddled elses.
02:05 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/9703ef553e
02:06 whiteknight kid51: yes
02:08 davidfetter joined #parrot
02:10 davidfetter left #parrot
02:11 dalek parrot/embed_api2: 5607539 | jkeenan++ | include/parrot/api.h:
02:11 dalek parrot/embed_api2: [codingstd] C parentheses.
02:11 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/560753936c
02:15 kid51 Hmm, I hope those codingstd fixes didn't cause build failures
02:18 kid51 Damn, uncuddling an else may have caused a build failure!
02:19 whiteknight ..?
02:22 dalek parrot/embed_api2: 7db7331 | jkeenan++ | src/embed/api.c:
02:22 dalek parrot/embed_api2: Correct C-comment syntax error.
02:22 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/7db7331c42
02:25 kid51 whiteknight: I'm again completing 'make' on linux.  But at the very end of 'make', I get this warning:
02:25 kid51 src/install_config.c:2702: warning: no previous prototype for 'Parrot_set_config_hash'
02:26 whiteknight kid51: warning? not error? The build completes otherwise?
02:26 whiteknight what's the command that causes the error?
02:26 whiteknight er, warning?
02:26 kid51 warning -- as indicated by the word 'warning' in the middle of it?
02:27 whiteknight ok
02:27 kid51 It occurs just at the end of make, before make test begins.
02:27 dalek parrot-linear-algebra: 36ecf37 | (Léo Grange)++ | / (8 files):
02:27 dalek parrot-linear-algebra: Add support of array type for ComplexMatrix2D
02:27 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/36ecf37b00
02:27 dalek parrot-linear-algebra: ee7a6d1 | (Léo Grange)++ | t/methods/complexmatrix2d/gemm.t:
02:28 dalek parrot-linear-algebra: Removed some code oversight
02:28 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/ee7a6d139f
02:28 dalek parrot-linear-algebra: 5bd652f | Whiteknight++ | src/lib/matrix_common.c:
02:28 dalek parrot-linear-algebra: fix to build against Parrot master
02:28 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/5bd652f20f
02:28 whiteknight weird
02:30 nopaste "kid51" at 192.168.1.3 pasted "embed_api2 branch: warning at conclusion of successful build on linux/i386" (961 lines) at http://nopaste.snit.ch/26536
02:30 kid51 The warning re install_config.c does not prevent successful build or test
02:30 kid51 (now, back to the Darwin build failure)
02:31 whiteknight kid51: I don't have an install_config.c file here. Are you doing a make or a make install?
02:32 whiteknight (thanks for the help tonight, by the way)
02:36 kid51 Let me ask about these src/embed/api.c messages one at a time.
02:36 kid51 What's this about:  src/embed/api.c:228: warning: no previous prototype for 'Parrot_api_ready_bytecode
02:36 whiteknight hmmm, I may have forgotten to run headerizer. I added that function in my most recent commit
02:37 plobsing jnthn: imcc is keeping track of the line numbers (try adding bogus pir to compile.pir just before the error line). what it isn't doing is generating decent annotations (a subsystem I don't understand at all).
02:38 kid51 Re the install_config.c warning on my linux build.
02:39 kid51 I've noticed that unless I've been more than usually scrupulous about when I run 'make realclean' ..
02:39 kid51 ... I get left over generated files from one branch when I switch to another branch.
02:39 kid51 I think that was the problem there.
02:40 kid51 Ermmm, nope
02:43 kid51 That hypothesis is invalid
02:44 dalek parrot-linear-algebra: 01e58f5 | Whiteknight++ | src/lib/math_common.c:
02:44 dalek parrot-linear-algebra: small tweaks and cleanups
02:44 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/01e58f5752
02:44 kid51 I just did a make realclean in embed_api2, configure make -- and got that same warning.
02:44 kid51 Note that that's a file generated in the 3rd last line of 'make'
02:45 kid51 And, the warning message is valid.
02:46 kid51 There is no prototype for that function, which appears at the very end of the file.
02:46 kid51 The file has these includes:
02:46 kid51 #include <stdio.h>
02:46 kid51 #include "parrot/api.h"
02:46 kid51 So the prototype is probably missing from include/parrot/api.h
02:47 kid51 And, indeed, it is.
02:47 whiteknight kid51: which prototype, again?
02:47 kid51 So that warning stems from one of the 2 files in this branch that we're looking at re Darwin build problems.
02:47 kid51 src/install_config.c:2702: warning: no previous prototype for 'Parrot_set_config_hash'
02:55 whiteknight right. let me look for that
02:56 kid51 whiteknight:  Looking at the tail of the failed make output on Darwin, I see that make is creating the '.o' files in src/ rather than src/embed/.
02:56 kid51 i.e., the .o files are being created in a different directory from the .c files.
02:57 kid51 Could this be problematic?
02:57 contingencyplan left #parrot
02:57 * kid51 has noted from his work in tt532_headerizer_factor branch that this is anomalous.
02:58 whiteknight I don't *think* that should be problematic
02:58 whiteknight that Parrot_set_config_hash function shouldnt really be used by anything
02:58 whiteknight I thought I had taken it out of the places that were using it
02:58 kid51 For example:  We have about 5 .c files in src/call/ -- and all their .o files are created there as well.
02:59 kid51 I know that tools/dev/headerizer.pl takes as its argument something like src/call/args.o -- and then figures out that the file it has to headerize is src/call/args.c
03:00 kid51 So I'm wondering if you're getting what you expect out of headerizer.pl.
03:08 whiteknight hmmm.. that is an interesting hypothesis
03:08 whiteknight let me rerun headerizer here and push the results. See what that does for you
03:09 dalek parrot/embed_api2: 71d8c29 | Whiteknight++ | include/parrot/api.h:
03:09 dalek parrot/embed_api2: rerun make headerizer
03:09 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/71d8c29583
03:09 dalek parrot/embed_api2: 2042095 | Whiteknight++ | / (5 files):
03:09 dalek parrot/embed_api2: Merge branch 'embed_api2' of github.com:parrot/parrot into embed_api2
03:09 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/2042095bc6
03:12 kid51 Do we have to place these files in a .gititnore ?
03:12 kid51 #       src/embed/api.o
03:12 kid51 #       src/embed/pmc.o
03:12 kid51 #       src/embed/strings.o
03:12 kid51 nothing added to commit but untracked files present (use "git add" to track)
03:12 kid51 They keep showing up as untraced whenever i do 'git status' in this branch
03:14 kid51 s/untraced/untracked/
03:17 kid51 Hmm, now getting build failures on *both* OSes
03:18 nopaste "kid51" at 192.168.1.3 pasted "embed_api2 branch at 2042095b: build failure" (323 lines) at http://nopaste.snit.ch/26539
03:20 kid51 That was the output on Linux.  The Darwin output is even uglier.
03:21 whiteknight damnit
03:21 kid51 headerizer gagged on your C++ comments
03:22 whiteknight I've been having a lot of trouble with ASSERT_ARGS
03:22 whiteknight I had to comment a few of them out because headerizer wasn't finding them or something
03:25 nopaste "kid51" at 192.168.1.3 pasted "output of headerizer.pl src/embed/api.o on Darwin" (75 lines) at http://nopaste.snit.ch/26542
03:26 whiteknight We do need to modify headerizer to not crap about PARROT_API
03:27 whiteknight do you have any idea how to do that?
03:28 dalek parrot/embed_api2: e21ab9d | jkeenan++ | lib/Parrot/Headerizer.pm:
03:28 dalek parrot/embed_api2: Add PARROT_API to list of valid macros.
03:28 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/e21ab9d5db
03:29 kid51 Done.
03:31 whiteknight kid51++
03:32 dalek parrot/embed_api2: b9cdf9c | jkeenan++ | / (2 files):
03:32 dalek parrot/embed_api2: After fixing C++ comments, I re-ran headerizer and modified these files.  But 'make' still fails at src/embed/api.c on Darwin.
03:32 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/b9cdf9ce6c
03:32 kid51 Looks like we're building again on Linux, but same problems on Darwin.
03:34 whiteknight okay, that's a step in the right direction
03:35 kid51 But we're still getting that warning at the very end of 'make' on Linux.
03:35 kid51 which, as discussed, points to the same problematic file on Darwin
03:37 kid51 ./include/parrot/api.h:215: error: parse error before '&' token  -- very puzzling, because the only & in the file appears long before line 215
03:39 Kristaba left #parrot
03:41 whiteknight kid51: yes, this is all extremely weird
03:48 kid51 I tried like this:  ARGIN(Parrot_Int stdin)  etc.  Made no difference.
03:49 kid51 What does this do?    #define GET_INIT_STRUCT(i)
03:53 whiteknight that's a macro to get a structure of initialization options
03:57 kid51 Is there something about stdin stdout stderr that might cause the compiler to imagine a '&' there?
03:57 spinclad joined #parrot
03:58 kid51 My vim syntax highlighting is characterizing those 3 words as different
04:00 lucian kid51: i think that's just convention
04:00 whiteknight yeah, those are pre-defined macros, so some syntax highlighters may recognize them
04:00 sorear yes, stdin is #defined as &__std_files[0] on some platforms
04:02 whiteknight kid51: I'm heading to bed now. I'll pick this issue up again in the morning
04:02 whiteknight goodnight
04:02 * kid51 to bed too
04:02 whiteknight ah right, same timezone and all
04:02 whiteknight see you tomorrow
04:02 whiteknight left #parrot
04:05 dukeleto ~~
04:08 dukeleto plobsing: ping
04:14 dukeleto aloha msg plobsing what if we use some kind of checksum algorithm to verify that packfile/pbc hasn't been garbled? Something like https://secure.wikimedia.org/wiki​pedia/en/wiki/Verhoeff_algorithm
04:14 aloha dukeleto: OK. I'll deliver the message.
04:26 plobsing dukeleto: pong
04:26 sorear why Verhoeff?
04:27 sorear are we expecting people to be reading PBCs in decimal over the phone?
04:27 kid51 left #parrot
04:29 plobsing dukeleto: first order of business would be to be able to load a pbc without running it. That would allow introspection of untrusted bytecode before running (I assume PL/Parrot could use this). I'm a little less interested in checksumming which can be done external to the pbc to a level appropriate to the expected errors.
04:43 lucian left #parrot
05:13 dukeleto sorear: i only gave it as an example
05:13 dukeleto sorear: but yes, i would like to also support TCP-over-carrier-pidgeon
05:13 dukeleto plobsing: yes, i like the sound of that
05:14 dukeleto plobsing: how can we load pbc without running it?
05:15 plobsing It cannot be done ATM. we'd need to avoid running the :load subs and also unthawing the constants.
05:19 plobsing I think Lorito might benefit this system substatially by making it possible to reuse substatial parts of the internals while augmenting parts we don't quite like.
05:25 dalek parrot: c817d4b | petdance++ | / (4 files):
05:25 dalek parrot: reran headerizer
05:25 dalek parrot: review: https://github.com/parrot/parrot/commit/c817d4b78f
06:04 dukeleto plobsing: i am talking about some assurance that our PBC is valid PBC, not random garbage
06:04 dukeleto plobsing: i don't care about running :load subs
06:04 dukeleto plobsing: i want to know that the PBC i am about to load is not filled with bits from /dev/random
06:04 dukeleto plobsing: is there any way to do that? Even some heuristics would be useful
06:05 dukeleto plobsing: i don't want to be able to prove that the PBC is valid, just want to know if it is obviously garbage
06:05 dukeleto plobsing: can we do some sanity checks on the pbc/packfile structure ?
06:08 dukeleto plobsing: is there some kind of pbc/packfile metadata that be checked against the actual pbc/packfile data?
06:08 plobsing dukeleto: there is already *some* sanity checking involved
06:08 plobsing if the header isn't in just the right format, you get an exception
06:09 plobsing if the lengths don't match up just right - exception
06:09 plobsing if various other things look bogus - exception
06:10 plobsing if that's all you're worried about, I suggest we make use of a fuzzer. IIRC, someone mentioned such a tool ~July of this year.
06:11 sorear dukeleto: um, are you suggesting running validation on ALL loaded pbcs?
06:47 AndChat joined #parrot
06:48 dalek parrot: 6507414 | petdance++ | src/pmc/fixedbooleanarray.pmc:
06:48 dalek parrot: localizing and consting, and flagged a function as constant
06:48 dalek parrot: review: https://github.com/parrot/parrot/commit/6507414f9c
06:49 AndChat left #parrot
06:50 gg411 joined #parrot
07:00 gg411 left #parrot
07:01 dukeleto plobsing: i am not sure those sanity checks happen when embedding
07:01 dukeleto sorear: i am talking about having the option to check/validate PBC for embedders
07:14 plobsing dukeleto: what makes you suspect that? it should be no different than normal loading. AFAICT, it would use the same codepath as load_bytecode.
07:20 gg411 joined #parrot
07:23 diakopter left #parrot
08:38 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1510) fulltest) at 6507414 - Ubuntu 10.10 i386 (g++-4.5 with --optimize)
08:39 dukeleto plobsing: i saw some comments in src/embed.c or src/extend.c that made me start asking questions
08:41 plobsing comments? you should trust those only slightly more than the documentation. which is to say not very much at all.
08:43 * plobsing sleeps
09:14 JimmyZ joined #parrot
09:16 fperrad joined #parrot
09:18 rfw left #parrot
09:25 JimmyZ left #parrot
10:08 TypeNameHere_____ left #parrot
10:33 contingencyplan joined #parrot
11:54 contingencyplan left #parrot
12:13 lucian joined #parrot
12:20 jnthn plobsing: Annotations are only ever generated by .annotate, IMCC doesn't generate them otherwise.
13:16 whiteknight joined #parrot
13:19 whiteknight good morning, #parrot
13:20 whiteknight is everybody ready for some hardcore PDS action tonight?
13:26 Infinoid I'm ready to lurk :)
13:30 whiteknight :)
13:31 moritz hardcore lurking!
13:31 moritz which channel do you use for PDS?
13:42 Psyche^ joined #parrot
13:42 Patterner left #parrot
13:42 Psyche^ is now known as Patterner
14:15 whiteknight #parrotsketch
14:21 Kristaba joined #parrot
14:30 moritz then my bot does hardcore lurking too :-)
14:36 PacoLinux left #parrot
14:38 PacoLinux joined #parrot
14:41 jan left #parrot
14:58 whiteknight left #parrot
15:00 whiteknight joined #parrot
15:05 kid51 joined #parrot
15:14 whiteknight cotto++
15:24 kid51 whiteknight: Am still trying to deal with embed_api2 on Darwin.
15:25 kid51 Note:  when I run headerizer src/embed/api.o, I get warnings like this:
15:25 kid51 Parrot_api_wrap_imcc_hack: "const char * sourcefile" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE
15:25 kid51 My experimentation suggests those are easily remedied by providing those wrappers ... but they don't solve the main problem.
15:27 preflex left #parrot
15:29 preflex joined #parrot
15:33 nopaste "kid51" at 192.168.1.3 pasted "embed_api2: different build failure messages when compiling with g++-4.0" (12 lines) at http://nopaste.snit.ch/26600
15:33 zby_ left #parrot
15:33 zby joined #parrot
15:36 whiteknight I haven't even tried building with g++ yet
15:37 whiteknight let me try that right now
15:40 kid51 Fails at same point, but with completely different error messages.
15:42 whiteknight and that's still on darwin?
15:46 jan joined #parrot
15:48 kid51 Yes.
15:49 kid51 On Linux, I experimented by compiling with an older gcc (3.3).  'make' completed successfully.
15:54 kid51 msg dukeleto README says that to get code for a branch, this should work:  git clone git://github.com/parrot/parrot.git -b <branch>.   But in git version 1.6.3.2 (at least) '-b' is not a valid switch for 'git clone'.
15:54 aloha OK. I'll deliver the message.
15:55 gg411 left #parrot
15:55 gg411 joined #parrot
15:59 whiteknight these ASSERT_ARGS macros are absolutely killing my gcc build today
16:01 Tene I just had my wisdom teeth out yesterday, so I spent the rest of the day and part of the night asleep on narcotics, and I had some weird nonsensical dream about implementing lorito.
16:01 kid51 A prophecy, perhaps.
16:02 whiteknight Tene; that's the normal design process
16:02 Tene lots of data structures and source code that, now that I'm awake and more coherent, don't hold any kind of consistency or sense at all.
16:03 Infinoid kid51: Hmm, git clone -b exists in git 1.7.1
16:03 kid51 Infinoid: Perhaps, but I don't have that version.
16:04 kid51 One thing I've learned about git:  The command-line switches have changed a lot between versions.
16:04 * Infinoid tries to find out if it was added recently, renamed, just missing, or what
16:05 kid51 I think that in the README we should only include examples that are relatively stable across git versions.
16:06 Infinoid 1.6.3.2 does not seem to have an equivalent
16:06 Infinoid So maybe it's reasonable to change it to git clone X; git checkout Y
16:06 kid51 On Linux, I have what, at least last year, was Debian stable -- and its git version is in the 1.5 range, in which I have to say: git checkout --track -b <newbranch> <origin/newbranch> to track a branch from githum
16:07 kid51 Infinoid:  I guess duke's objective there was to illustrate how to get just one branch (non-master) at a time.
16:07 kid51 Until a few minutes ago, I had never had occasion to try that.
16:07 Infinoid I think it fetches the whole repo either way, regardless of which branch it ends up delivering to you
16:07 kid51 whiteknight: Did a completely new checkout of embed_api2 branch on Darwin -- and got same build failures.
16:08 kid51 Infinoid:  I suspect as much, but I'm not using git's blead.
16:09 whiteknight kid51: I have a few fixes coming for G++
16:10 kid51 Is there anyone else around who could try the embed_api2 branch on Darwin?
16:15 whiteknight I don't have darwin, or I would
16:18 * Tene has no darwin.
16:19 * kid51 has to reboot
16:19 kid51 left #parrot
16:25 whiteknight msg bluescreen: I don't think pbc_merge.c has been updated to the new API. I thought we did that. Maybe I forgot or something
16:25 aloha OK. I'll deliver the message.
16:31 Coke .
16:32 Tene !
16:32 Tene when is pds anyway?  I remember there was a survey of availability... but don't remember noticing a conclusion.
16:41 preflex left #parrot
16:43 preflex joined #parrot
16:43 Coke msg whiteknight I get a segfault building your branch on darwin/x86.
16:43 aloha OK. I'll deliver the message.
16:45 nopaste "Coke" at 192.168.1.3 pasted "build failure on embed_api2" (25 lines) at http://nopaste.snit.ch/26619
16:45 Coke msg whiteknight http://nopaste.snit.ch/26619
16:45 aloha OK. I'll deliver the message.
16:53 TimToady left #parrot
16:53 sorear left #parrot
17:10 TimToady joined #parrot
17:10 sorear joined #parrot
17:15 kid51 joined #parrot
17:16 Topic for #parrot is now Parrot 2.10.1 Released | http://parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot Developer Summit 2300 UTC today | Please test rakudo with bleeding edge parrot!
17:18 kid51 2300 UTC is 6:00 pm US EST; 3:00 pm US PST
17:19 sorear left #parrot
17:19 TimToady left #parrot
17:23 dukeleto kid51++
17:23 dukeleto is the summit in here or in #ps ?
17:24 kid51 #parrotsketch
17:25 dukeleto kid51: i agree with you about using git switches, i wil fix the README
17:25 dukeleto kid51: -b doesn't "get one branch at a time", it just checks out a branch other than master by default. It actually isn't that useful. All of history still must be downloaded
17:26 dukeleto who is invited to the PDS? Parrot users as well? Or only Parrot devs?
17:29 whiteknight anybody who has an interest in the direction of Parrot's development
17:30 whiteknight we need to set medium- and long-term development priorities, and that certainly affects users
17:30 sorear joined #parrot
17:30 dalek parrot: 1f1054f | dukeleto++ | README:
17:30 dalek parrot: Don't use git switches that only work in newer gits
17:30 dalek parrot: review: https://github.com/parrot/parrot/commit/1f1054f8c1
17:30 whiteknight msg Coke: thanks for the feedback. I'll look into it
17:30 aloha OK. I'll deliver the message.
17:30 TimToady joined #parrot
17:31 Tene to see it in local time, just run: date -d '23:00 UTC'
17:38 dalek parrot/embed_api2: 6be2b4a | Whiteknight++ | / (2 files):
17:38 dalek parrot/embed_api2: remove the ASSERT_ARGS stuff, and other things that are borking thebuild.
17:38 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/6be2b4aa79
17:38 dalek parrot/embed_api2: 73f662d | Whiteknight++ | / (6 files):
17:38 dalek parrot/embed_api2: some fixes so libparrot builds with g++
17:38 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/73f662d65e
17:38 dalek parrot/embed_api2: 5a8f955 | Whiteknight++ | / (2 files):
17:38 dalek parrot/embed_api2: fix conflict on comments
17:38 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/5a8f955537
17:42 tadzik hello Parrots
17:43 kid51 tadzik hello
17:46 dukeleto tadzik: wazzup
17:46 dukeleto is everyone getting excited about our PDS?
17:46 tadzik dukeleto: good, I just got back from Austerlitz
17:50 kid51 left #parrot
18:00 Khisanth left #parrot
18:00 dukeleto what are people hacking on today?
18:03 jsut joined #parrot
18:04 theory joined #parrot
18:08 jsut_ left #parrot
18:15 contingencyplan joined #parrot
18:27 lucian left #parrot
18:28 lucian joined #parrot
18:29 theory left #parrot
18:30 theory joined #parrot
18:31 dukeleto i guess nothing.
18:33 Coke TT #1848 is easily closable.
18:35 Coke seen tadzik?
18:35 aloha tadzik was last seen in #perl6 24 mins 25 seconds ago saying "(it's quite silent here today, isn't it?)".
18:35 tadzik Coke: seen, seen
18:35 tadzik Coke: lemee see
18:35 Coke OHAI
18:36 Coke is http://trac.parrot.org/parrot/ticket/1804 closable?
18:36 dukeleto Coke: OHAI
18:36 tadzik Coke: seems so
18:36 dukeleto Coke: close with a hammer, plz
18:41 dalek TT #1804 closed by coke++: Parrot out of mem on building Rakudo
18:41 dalek TT #1804: http://trac.parrot.org/parrot/ticket/1804
18:46 rfw joined #parrot
18:52 Coke cotto: if you're going to reject TGE tickets as wontfix, might want to do the same with PGE.
18:54 Coke msg cotto: if you're going to reject TGE tickets as wontfix, might want to do the same with PGE.
18:54 aloha OK. I'll deliver the message.
18:54 TimToady left #parrot
18:54 sorear left #parrot
18:55 theory left #parrot
19:00 TimToady joined #parrot
19:02 dalek parrot: 5e4c203 | plobsing++ | src/p (2 files):
19:02 dalek parrot: add libdeps support to pbc merge
19:02 dalek parrot: review: https://github.com/parrot/parrot/commit/5e4c2034be
19:02 dalek parrot: 9bec614 | plobsing++ | / (31 files):
19:02 dalek parrot: Merge branch 'master' of github.com:parrot/parrot
19:02 dalek parrot: review: https://github.com/parrot/parrot/commit/9bec614611
19:06 TimToady left #parrot
19:26 gg411 left #parrot
19:44 Khisanth joined #parrot
19:55 khisanth_ joined #parrot
20:00 Khisanth left #parrot
20:00 khisanth_ is now known as Khisanth
20:02 whiteknight blah. updating parrot_debugger is going to be a much larger project than I anticipated
20:03 whiteknight does it even work?
20:06 mikehh whiteknight: the tests have been disabled and no work has been done on new ones, so I can't even say
20:06 whiteknight ok, thanks
20:07 mikehh Paulthe Greek was working on it but I think he ran into $work issues
20:07 whiteknight ok
20:08 bluescreen left #parrot
20:08 plobsing even if it does "work", it doesn't work in a way that would be considered useful by users. It is a PIR debugger. It would be much more useful if it also supported HLLs.
20:08 bluescreen joined #parrot
20:08 plobsing consider how useful gdb would be if you only had access to assembly
20:09 plobsing no access to local variables, no source-line-wise stepping, etc
20:13 gg411 joined #parrot
20:20 sorear joined #parrot
20:20 TimToady joined #parrot
20:28 rfw left #parrot
20:32 rfw joined #parrot
20:51 AndChat| joined #parrot
20:51 AndChat- joined #parrot
20:53 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1517) fulltest) at 9bec614 - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
20:54 gg411 left #parrot
20:56 AndChat- left #parrot
20:56 AndChat- joined #parrot
20:57 AndChat| left #parrot
21:00 rfw oh whiteknight you might want to remove me from contributors on Whiteknight/parrot-linear-algebra lol
21:00 whiteknight ok, if you want
21:06 mikehh rakudo does not build on latest parrot - Parrot_capture_lex function not defined/missing
21:06 whiteknight ok
21:17 moritz fixed in rakudo HEAD
21:21 mikehh moritz: yeah - I changed that and it built, testing
21:43 allison left #parrot
21:56 tcurtis joined #parrot
22:00 M_o_C joined #parrot
22:03 kid51 joined #parrot
22:10 mikehh rakudo (fedc117) - builds on parrot (679-g9bec614) - make test PASS, make spectest_smolder[(#1518) roast (744caf1)] PASS - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
22:10 mikehh t/spec/S02-magicals/pid.rakudo - TODO passed:   1
22:10 mikehh 27,052 ok, 0 failed, 610 todo, 1,856 skipped and 1 unexpectedly succeeded
22:10 fperrad left #parrot
22:26 nopaste "kid51" at 192.168.1.3 pasted "re failure in embed_api2 branch on Darwin: headers differ Linux vs Darwin" (35 lines) at http://nopaste.snit.ch/26708
22:26 kid51 whiteknight: Can you look at that paste?  Thanks.
22:30 kid51 Parrot Developer Summit in #parrotsketch in 30 minutes
22:32 whiteknight kid51: sure. will after dinner
22:33 whiteknight 30 minutes? I thought it was at 8PM
22:33 kid51 2300 UTC -> 1800 EST, right?
22:33 plobsing correct
22:35 kid51 whiteknight:  As per your Nov 20 email on parrot-dev
22:40 Kristaba left #parrot
22:48 chromatic joined #parrot
22:50 whiteknight kid51: ah right, I had it written down wrong
22:53 M_o_C left #parrot
22:53 whiteknight I'm going to be a little late. Somebody else is going to have to lead the retrospective portion
22:54 shockwave joined #parrot
22:59 shockwave left #parrot
22:59 shockwave joined #parrot
23:00 shockwave left #parrot
23:01 dukeleto PDS now?
23:01 kid51 PDS now in #parrotsketch
23:22 chromatic Ha, want a really really cheap generational GC?
23:22 chromatic Each generation has a single root.
23:23 chromatic Each generation consists of everything reachable from that root.
23:23 plobsing isn't that essentially ref-counting?
23:23 chromatic Promotion to an older generation *is* assignment, without any need for barriers or special flag flipping.
23:24 chromatic You don't have to count references at all.
23:24 chromatic You do still have to do a global mark and sweep to catch medium-lived GCables, but you get essentially free garbage-first behavior and you can track more than one generation this way.
23:28 dukeleto chromatic: have you looked at Rubinius' GC?
23:28 dukeleto chromatic: it is "Immix"
23:29 dukeleto chromatic: they have 3 generations and 1 large object area, and nothing ever passes between the 3 generations and the large object area
23:29 chromatic That's a nice way to handle big string contents.
23:30 dukeleto chromatic: it is a very new algorithm, from 2008
23:31 dukeleto chromatic: http://hackage.haskell.org/trac/ghc/​wiki/Commentary/Rts/Storage/GC/Immix
23:31 chromatic thanks, reading now
23:32 dukeleto chromatic: the original paper is online somewhere, looking for it
23:33 dukeleto chromatic: http://cot.ag/hoCYk8
23:33 preflex left #parrot
23:36 preflex joined #parrot
23:37 jsut_ joined #parrot
23:38 bluescreen_ joined #parrot
23:38 bluescreen left #parrot
23:38 lucian chromatic: dukeleto: http://codespeak.net/pypy/dist/p​ypy/doc/garbage_collection.html
23:39 chromatic Thanks, will read that too.
23:40 whiteknight lucian++ on the link
23:41 lucian it seems a rather simple setup, and it's been shown in practice to give excellent performance
23:42 jsut left #parrot
23:43 chromatic Which one?
23:43 chromatic Compact in place?
23:43 whiteknight I like simple and "excellent performance"
23:43 lucian chromatic: the hybrid one
23:44 lucian the compact one isn't particularly fast
23:44 lucian whiteknight: you might want to grep the pypy blog for GC
23:44 whiteknight ok
23:44 chromatic Doesn't the hybrid approach do copying as well?
23:45 lucian chromatic: it does, yes
23:45 chromatic but the segregation into multiple generations limits copying
23:45 lucian but it's relatively little copying since the nursery prunes ephemeral objects
23:45 lucian yep
23:46 chromatic That's the biggest benefit we'll get from any different GC scheme.
23:47 lucian it's mark&sweep right now, right?
23:48 chromatic Right.
23:48 chromatic Global M&S.
23:48 lucian i see
23:48 lucian well, the pypy one is something even I could implement in C given enough time
23:49 chromatic How much time is "enough time"?
23:49 particle is lucian an army of monkeys with typewriters?
23:50 lucian particle: heh
23:50 lucian chromatic: don't know, i've never done it before
23:50 lucian and it would require free time
23:50 chromatic How much Python code (or RPython) is required?
23:51 lucian chromatic: you mean just reusing pypy's?
23:51 lucian it shouldn't depend on too much, it's RPython
23:52 chromatic How many lines of code and how many files?
23:52 lucian but building RPython is tricky, it requires a python interp
23:52 lucian chromatic: i'd have to look

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

Parrot | source cross referenced