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