Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: write GettingStartedWithPlumage, review html documentation, test HLLs, review deprecations | merge at will
Set by moderator on 18 January 2011.
00:02 Kristaba left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#3756) fulltest) at 3_0_0-78-g8f579d3 - Ubuntu 10.10 amd64 (g++-4.5) 00:05
Coke dukeleto: posted a patch for you.
dalek rrot: 2dcf61e | NotFound++ | lib/Parrot/Pmc2c/PMCEmitter.pm:
simplify a bit the C code generated for MULTI vtable functions
00:06
dukeleto Coke: already merged it 00:07
Coke: feel free to fork Util.git and send pull requests :)
Coke: i am thinking that i will add --debugging=0 and --test to the smoker's list of stuff to test 00:09
TimToady e 00:11
ə 00:12
Coke schwats up? 00:14
dalek p-rx/nom: 5ab91d8 | jonathan++ | src/stage0/ (3 files):
Update the bootstrap to get method cache into the stage 0.
00:20
p-rx/nom: 9dcdea6 | jonathan++ | src/metamodel/reprs/P6opaque. (2 files):
A refactor of P6opaque to start to prepare the way for natively typed attributes. Along the way, this slashes a memory allocation per object instantiation, meaning that it's now just the PMC header and the object body. Given there's no RPA for attributes any more, this boils down to half the number of allocations and half the number of GCables for 6model objects compared to current Parrot objects.
00:20 whiteknight joined
bacek_at_work jnthn++ # new nqp will be awesome! 00:20
jnthn :) 00:21
cotto_work jnthn++ 00:24
jnthn aww 00:25
Parrot_gc_allocate_fixed_size_storage and Parrot_gc_free_fixed_size_storage aren't marked as exported at the moment.
So I can't actually switch P6opaque to allocate its bodies using the fixed size allocator. 00:26
(Without exposing those two.)
bacek_at_work jnthn, oops. Will fix soon
jnthn bacek_at_work: OK, if you're fine with them being API, wfm. :)
bacek_at_work they are in src/gc/api.c :) 00:27
jnthn Ah, true. :)
sleep & 00:29
00:29 fbrito left
bacek_at_work jnthn, done. 00:34
dalek rrot: f77d1a5 | bacek++ | / (2 files):
Mark all functions with PARROT_EXPORT. They are in api.c anyway
dukeleto taught the smokers to pass --test to Configure.pl, but it doesn't seem that the output from those tests gets sent to smoler
smolder, even.
LTA
i think we may need a parrot-smokers mailing list. Somewhere that build failure emails can go to 00:36
dalek rrot: 68b83a9 | jkeenan++ | config/gen/makefiles/root.in:
Fix apilist, exportlist and malloclist to build directly after configuration. See: trac.parrot.org/parrot/ticket/1922.
00:40
cotto_work is thoroughly surprised at how much discussion the Float gcc bug has generated 00:43
NotFound I'm most surprised by the urgence of hiding the problem under a carpet. 00:47
cotto_work with an epsilon?
NotFound Yeah 00:48
cotto_work -1 to that
whiteknight A real float comparison algorithm would require a lot more than just a single epsilon
NotFound A float comparaison for equality should just do that.
cotto_work and it wouldn't be appropriate in the case where there's only a difference in some builds
NotFound And an appropiate comparaison with an epsilon will be a lot slower than any effect the volatile may have, BTW. 00:50
I'm tempted to suggest to kill the cmp_num vtable and make the cmp_num p p opcode always use get_number on both operands. 00:51
bacek_at_work NotFound, it will not help. Float.cmp_num use .get_number for both operands. 00:52
00:52 fbrito joined
cotto_work I think he's saying that it's an unnecessary VTABLE slot. 00:52
hi fbrito
you'll be proud to know that one of your tests uncovered a rather mysterious behavior. 00:53
bacek_at_work cotto_work, we should not blindly compare float number with 0.0. It's wrong.
00:55 NotFound left
cotto_work bacek_at_work: what are you referring to? 00:56
00:58 NotFound_idle is now known as NotFound
NotFound bacek_at_work: we should compare with 0.0 when we need to compare with 0.0' 00:58
Probably you shouldn't blindly use cmp_num, but that's a completely different issue. 00:59
01:01 dmalcolm left
NotFound And giving that we use the cmp_num vtable for <, <=, > and >=, it should do an exact comparaison or we risk to have funny results in lots of usages. 01:01
But again, I don't understand the urgence. The speed lost is absolutely non mensurable. 01:03
Even less if you compare speeds with an epsilon ;)
whiteknight if we are using it for relationals, then that's fine 01:11
I would agree that cmp_num is a worthless vtable slot 01:12
sorear Andy++ # SANITY 01:42
dalek rito: 2268684 | (Jon Gentle)++ | internal_pmc. (2 files):
Change lorito_file_new to const char* and save the name with a strdup
02:14
rito: feaf970 | (Jon Gentle)++ | / (3 files):
Make the loadbc function private and add the public lorito_load_bytecode
rito: ac754af | (Jon Gentle)++ | core.c:
Fill in the loadlib opcode to actually load bytecode
TT #1979 created by coke++: Configure.pl --without-extra-nci-thunks fails tests. 02:25
TT #1979: trac.parrot.org/parrot/ticket/1979
02:31 whiteknight left 02:44 simcop2387_ joined 02:45 simcop2387 left 02:46 simcop2387_ is now known as simcop2387
cotto ~~ 02:51
plobsing_ isparrotfastyet appears to show large amounts of noise. any ideas about any things we've actually done to prompt the spikes and valleys in those graphs? 02:53
03:06 ppant joined 03:25 bacek left 03:36 bacek joined
dalek rrot: de841c2 | jkeenan++ | / (13 files):
[codingstd] Add functionality to identify Python files. Test those files for copyright.

Apply patch submitted in trac.parrot.org/parrot/ticket/1934.
03:41
cotto anyone ever wanted to manage a release? 04:26
davidfetter root canals! get your root canals here! 04:37
cotto davidfetter, thanks for volunteering. You're on 3.4.0. ;] 04:40
davidfetter d'oh!
dukeleto lulz 05:00
plobsing_: various branch merges that were not benchmarked
atrodo I agree, ipfy has some strange noise. I haven't had time to figure out if it's right, the box is doing it, or if the time that I ran it caused the noise 05:06
at least I got it running on a cron now
dukeleto> (re my lorito) coming along. Working on the first real-ish PMCs, but still have a lot of details to fill in 05:09
cotto atrodo, what's your immediate plan for PMCs? The goal is to have them running on top of the mop. 05:11
atrodo cotto> That's kind of a tricky point, i actually have no plans of any sort of mop. It's a bring your own right now 05:12
05:21 Myhrlin left 05:32 Myhrlin joined 05:35 fbrito left
dalek rrot/leto/embed_grant: e777870 | dukeleto++ | / (3 files):
[t] Move extend_vtable.c tests to their own file
05:39
05:44 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner 05:49 rurban_ joined 05:51 rurban left, rurban_ is now known as rurban 06:23 Myhrlin_ joined 06:24 Myhrlin left, tcurtis left
dalek rrot/leto/embed_grant: 6a50542 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_(push|pop|shift|unshift)_(float|integer|pmc|string)
06:30
06:37 davidfetter left 06:41 fperrad joined 06:45 fbrito joined
cotto We seem to have several test failures of late. 06:46
dukeleto also, "make cover-src" doesn't work. It runs tests but doesn't generate a coverage report 06:47
06:47 theory left, hudnix left 06:48 hudnix joined
dukeleto blarg. 06:54
ignore that.
it is used as a substep in "make cover" and "make fullcover", so it doesn't generate the coverage report 06:55
dalek umage: ed71e2f | fperrad++ | setup.pir:
use get_submitter from distutils
06:57
TT #1980 created by dukeleto++: make cover-src doesn't generate a coverage report 07:03
TT #1980: trac.parrot.org/parrot/ticket/1980
TT #1980 closed by dukeleto++: make cover-src doesn't generate a coverage report
TT #1980: trac.parrot.org/parrot/ticket/1980
cotto dukeleto, how efficient of you
dukeleto cotto: that teaches me to open TT's without researching first 07:06
it is pretty hilarious about the IRC announce timings, though :) It actually took me about 3 minutes to realize and close it after opening it
Parrot_PMC_freeze modifies it's argument. That seems odd to me. 07:10
cotto I hate it when people modify my arguments. 07:13
dukeleto and, why why why is there something called Parrot_PMC_thawfinish 07:14
cotto dukeleto, how do I tell git that I no longer care about a rebase I started a while ago?
dukeleto cotto: git rebase --abort
cotto: also, you must yell "MISSION ABORTED" at the top of your lungs
cotto I didn't try that second part
dukeleto a boy can dream 07:15
cotto I love that internal packfile functions rely on the filename extension for determining what to do. 07:16
dukeleto what could go wrong? 07:19
cotto Nothing, ever. That's what. 07:20
dalek rrot: 92f017f | cotto++ | src/packfile/api.c:
split compile_or_load_file into separate functions
dukeleto seems like thawfinish should have been called after_thaw 07:25
cotto pshaw 07:26
such sensibilities are quaint
07:28 ppant left
cotto dukeleto, is it somehow not? According to the small pieces of the serialization code I haven't repressed from my memory, that's what it's supposed to do. 07:29
dukeleto yeah, i guess i make a distinction between "finishing" a process, and something that happens after a process 07:33
in Moose, there are hooks such as before, around and after
which you can apply to any method call
"finishing" a thaw implies it isn't done yet
but it is just semantics 07:34
and not worth changing, unless we are changing something else
but i guess there is a "partial thaw" with is just thaw() and a "full thaw" is thaw+thawfinish
at least that is what I understand so far
mj41 AutomatedHLLTesting looks like TapTinder ToDo list. - trac.parrot.org/parrot/wiki/AutomatedHLLTesting 07:42
dukeleto mj41: go for it! 07:43
i just found out that parrot's test suite knows about an env var called POSTMORTEM 07:44
mj41 dukeleto: I'm doing my best :-). 07:45
dukeleto msg whiteknight you can set POSTMODERM in your shell and parrot will keep around object files and binaries for t/src/* tests. I think I heard you wanting that recently
aloha OK. I'll deliver the message.
cotto dukeleto, nice find 07:47
dukeleto Either I don't know how to use it, or Parrot_PMC_thaw doesn't work 07:48
cotto Having met both you and Parrot, I'd tend to trust you. 07:50
dukeleto i am probably not fiddling some bit, but it is not intuitive what you need to do to freeze a PMC from C 07:51
cotto It's a known mess. 07:52
dalek rrot/leto/embed_grant: eb09311 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_elements and a commented-out test for Parrot_PMC_thaw that blows up
07:59
cotto dukeleto, when's all that work going to be merged? 08:05
dukeleto cotto: most of it was merged before 3.0.0 08:06
cotto: my leto/embed_grant branch gets periodically merged to master
cotto: i am having issues generating my own coverage reports, so I pretty much need to merge to master to get a coverage report 08:07
cotto dukeleto, odd
dukeleto cotto: "make fullcover" generates a huge number of *.html in the root of my repo, but not the coverge.html file 08:08
cotto: and "make cover" doesn't do t/src
cotto Those yaks are surprisingly good at hiding. 08:09
dukeleto The yaks are starting to cross-breed with chameleons
cotto disturbing
dukeleto cotto: yes. And now, I go to bed.
cotto 'night
cotto too 08:10
dukeleto cotto: may the yaks tread on you gently
dalek tracwiki: v9 | cotto++ | PackfileTasklist 08:19
tracwiki: various updates
tracwiki: trac.parrot.org/parrot/wiki/Packfil...ction=diff
08:20 vmspb joined 08:33 contingencyplan left 08:44 cogno joined
dalek rrot: f2af827 | jimmy++ | config/ (3 files):
fixed TT# 1873
08:48
09:03 cogno left 09:04 cogno joined 09:32 jjore_ left 09:34 jjore joined
dalek gest-dynpmcs: e411a12 | fperrad++ | src/pmc/digest_pmc.in:
use binary encoding
09:35
09:41 cogno left 09:48 mikehh left 09:59 mikehh joined 10:17 cogno joined 10:28 cogno left 10:34 vmspb left 11:10 cogno joined 11:15 JimmyZ joined 11:19 JimmyZ left 11:20 cogno left 11:39 JimmyZ joined 11:41 fbrito left, fbrito joined 11:43 cogno joined 11:47 GeJ_ is now known as GeJ 11:59 cogno left, fperrad_ joined 12:01 fperrad left, fperrad_ is now known as fperrad 12:46 jimmy joined, jimmy left 12:53 cogno joined 13:05 fbrito1 joined 13:06 fperrad left 13:07 fbrito left 13:08 fperrad joined 13:11 cogno left, cogno joined 13:29 JimmyZ left 13:41 fbrito1 left 13:49 rurban_ joined
dalek rrot: 858c70b | fperrad++ | runtime/parrot/library/distutils.pir:
[distutils] by default add Submitter as extra props
13:49
13:51 mtk joined, rurban left, rurban_ is now known as rurban 13:58 JimmyZ joined 13:59 whiteknight joined 14:11 spinclad left 14:16 mtk left, mtk joined 14:17 plobsing_ left 14:20 cogno left 14:25 mtk left, mtk joined
whiteknight good morning, #parrot 14:49
JimmyZ good morning, whiteknight 14:50
14:53 mtk left 14:54 mtk joined
whiteknight hello JimmyZ 14:55
JimmyZ Hi :)
14:56 mberends left 15:00 mtk left 15:01 mtk joined
dalek nxed: r735 | NotFound++ | trunk/winxedst1.winxed:
refactor handling of predefined functions and better diagnose its misuses
15:09
15:10 ambs joined
dalek rrot: f2848b0 | mikehh++ | docs/pdds/pdd10_embedding.pod:
add a space in heading to conform to other pdd's headings
15:19
nxed: r736 | NotFound++ | trunk/winxedst1.winxed:
delete several commented out statements
15:20
15:25 hercynium joined 15:34 bluescreen joined
mikehh whiteknight: I just got a failure with t/pmc/threads.t - Failed test: 8 - smoke #3919, ran it again straight away no failure - smoke #3920 15:36
whiteknight: just thought you might like to know :-} 15:37
whiteknight mikehh: I'm positive there are timing issues in those tests 15:38
the system they are testing is bad, and the tests are poorly written
Any tests for threads which relies on a specific ordering of output text is likely going to fail occasionally
15:42 plobsing joined
mikehh whiteknight: I have been getting intermittent failyres with that test (t/pmc/threads.t) for ages 15:45
failures
not all that often, I haven't recorded it but 5% or less 15:48
All tests PASS (pre/post-config, make corevm/make coretest, smoke (#3920) fulltest) at 3_0_0-89-gf2848b0 - Ubuntu 10.10 i386 (g++-4.5) 15:53
apart from an intermittent failure with t/pmc/threads.t - Failed test: 8 in smoke #3919 which I reran to get no failures in smoke #3920
dalek nxed: r737 | NotFound++ | trunk/winxedst1.winxed:
tailcal function literal invocation, Issue 11, plobsing++
Coke seen mpeters 16:02
aloha Sorry, I haven't seen mpeters.
Coke smolder.parrot.org/app/projects/tes...tory/1/231 - t/pmc/threads.t failures. 16:03
I believe that is due to the --without-extra-nci-thunks option. 16:04
16:05 theory joined
Coke whoops. nope. 16:05
bah, that smolder link, if you click on the one with failurs, you get... whitescreen.
mikehh Coke: it only gives a list of 20 tests, we need to be able to look at more 16:07
16:07 pmichaud left
Coke smolder is configured to only keep N tests. 16:08
16:08 pmichaud joined
Coke and folks in parrotsketch were all crazy about running out of disk space. ;) 16:08
but we can bump it up a bit for parrot, sure. Lemme change that number. 16:09
mikehh both #3919 (which had a failure) and #3920 were run with the same build (options -> --test --cc=g++ --cxx=g++ --link=g++ --ld=g++ --configure_trace) 16:10
Coke mikehh: parrot now saves 250 full reports instead of just 100.
16:11 JimmyZ left
tadzik hello 16:19
16:22 cogno joined, contingencyplan joined
plobsing ping whiteknight 16:26
whiteknight pong
plobsing just read your recent blog post. why do you want to move the GC and context stuff out of IMCC? 16:27
only IMCC should know about the dain bramage that requires those stunts
whiteknight IMCC shouldn't presume to know whether Parrot's GC is blocked or not, or whether it's in a sufficient context or it needs to create one 16:28
IMCC should certainly not be in the business of creating contexts 16:29
the GC thing I'm less certain about, but I still don't think IMCC should be in control of it
plobsing but IMCC *requires* that a context be in place (for :immediate subs, :postcomb subs, constant folding, ...). if it cannot assume one is in place, it should create one. 16:30
same for GC. IMCC will break badly with GC enabled. callers should not need to know about this. 16:33
atrodo So perhaps I'm confused, but does that mean that IMCC is what is actually running the bytecode?
plobsing IMCC does execute code, yes
16:34 mtk left
whiteknight IMCC doesn't necesarily require a context be in place, only some of it's interfaces do 16:34
16:34 cogno left
whiteknight and for those we can have a function in libparrot that sets it up 16:34
There are 6 separate interface functions to IMCC that make all sorts of different assumptions. I am going to whittle this down to two interface functions and consolidate a hell of a lot of code 16:35
I'm going to create two good interface functions for IMCC, wrap them up in a nice, self-contained PMC type for the purpose, and use that PMC type exclusively to interact with IMCC 16:37
I'm going to store IMCC state information in this PMC type, not in interp->imcc_info anymore. Then IMCC_INFO(interp) becomes just an info parameter, and interp becomes PARROT_INTERP(imcc_info) instead 16:38
plobsing why a PMC type? you should be able to do it with a real (PIR) object
whiteknight plobsing: It doesn't have to be a built-in PMC type 16:39
but it should be a PMC with methods of some variety
what language that PMC is written in does not concern me, though the initial implementation will probably be C if I'm writing it
plobsing ok. its just that sometimes I feel we have the wrong defaults on the builtin/addon and C/HLL PMC choice 16:40
16:40 mtk joined
whiteknight plobsing: At the moment, the Parrot executable frontend is written in C, and we need to get into IMCC before we have a runloop created 16:40
In the future, I want to "fix" that, and have a short PIR entrypoint program that sets up IMCC, processes arguments, and then calls into the main program packfile 16:41
but that's a few steps down the road
NotFound We can also create a class on the fly and add C mehods to it via nci.
whiteknight right, we can do a lot of things. The initial implemenations will be simple while we move towards bigger and better things
Right now, libparrot calls imcc_init to set up the PIR and PASM compregs. If we can do all this in a stub PIR entry point instead, we no longer rely on IMCC being built-in 16:43
and at that point, we can define the IMCC compreg in PIR
and nobody will be the wiser
An initial PIR compreg right now really only needs to override VTABLE_invoke to have the same behaviors as the current compreg does. We can add in a 'compile' method to start easing the transition 16:47
so rewriting that in PIR won't be too much of a headache. Once it's in PIR we can add all the fun new features we want 16:48
16:48 cogno joined
plobsing where does packfile pmcs fit in to this? I'd like to get cracking on that, but I can guarrantee it will have merge conflicts with whatever other improvements are happening concurrently. 16:50
whiteknight The IMCC compiler and all other compilers are going to be returning PackFile PMCs instead of Eval PMCs. It also won't automatically shallow-merge those new PackFiles into parrot's interp->initial_pf 16:51
so from there we can write a PIR frontend to Parrot that compilers PIR files to PackFiles and writes them out as .pbcs
nopaste "NotFound" at 192.168.1.3 pasted "A bare minimal HLL-like interface to PIR" (33 lines) at nopaste.snit.ch/28195
whiteknight NotFound: Right. Something simple like that would be very easy to do 16:52
plobsing NotFound: does winxed have that french-quote syntax?? 16:53
NotFound plobsing: yes, it's its heredoc syntax. 16:54
plobsing whiteknight: right. I understand they need to happen. What I am saying is I don't want to have to wade through a sea of merge conflicts when I try to get them. 16:55
whiteknight plobsing. Okay, I see what you are saying. I'm working right now on fixing up subclassable exceptions 16:56
in a few days, I'm getting back to IMCC and updating the IMCC interface to have less suck
then I'm going to work on a new prototype PIR compiler PMC type, but I won't insert it as the PIR compreg yet
so that takes me up to 3.1 or 3.2 16:57
plobsing whiteknight: on that subject, I've run into yet more exception issues and am unconvinced our current approach to them is the right one. 16:58
whiteknight plobsing: probably not. I'd love to hear your thoughts
plobsing thrown objects should be recyclable. more than that, they should be re-entrantly throwable. 16:59
whiteknight We had an ExceptionsTasklist page on the wiki, but it's mostly empty. You want to start ranting and I'll transcribe?
what do you mean "re-entrantly throwable".Like rethrow?
plobsing that is, I should be able to invoke a continuation from an exception handler that throws the exact same object and have 2 concurrently running, independant exception handlers for exceptions with the same object. 17:00
the handler chains for each should be completely separate.
whiteknight I'm not sure how that works. if you invoke the continuation, control flow leaves the initial handler 17:01
plobsing which means the thrown object is *not* the place to store them
whiteknight are you talking about more than one thread?
plobsing whiteknight: not even. coroutines can encounter these issues.
each coroutine can be in the midst of handling an exception 17:02
NotFound That may explain some coroutine issues.
whiteknight down this path lies danger, methinks. I wouldn't worry about it if not for inferior runloops and finalize 17:03
plobsing this has nothing to do with either of those things
coroutines can exist within the same runloop
whiteknight it does. We need to completely handle and finalize, an exception before we can re-handle it or handle a different one
maybe I'm just not understanding what you are saying. Could you put together a small code example? 17:04
brb, I'm going to go grab a sandwich 17:05
NotFound plobsing: do you mean a coroutine that yields in the middle of an expection handler? 17:07
plobsing NotFound: that can happen, yes 17:08
but is just one case of a more general control-flow issue 17:09
and the lesser problem of re-usable (as opposed to re-entrant) exceptions is already experienced by Ωη. 17:10
Ωη uses exception-object identity as part of its calling convention. Switching to rethrow changes the identity.
so Ωη cannot use rethrow 17:11
or something like that. all I know ATM is rethrow in stead of throw causes a lot of failures
whiteknight what do you mean exception identity? it would be the same exception and the same pointer to it 17:12
plobsing whiteknight: exactly. Ωη uses an exception singleton to indicate failed match, and allows all other exceptions to propagate. 17:14
if (e !== fail) { throw e; /* propagate */ } 17:15
whiteknight okay, and replacing rethrow there causes failure? 17:16
plobsing yes. because match-failed errors are no longer the same object. 17:17
whiteknight rethrow sets the handled attribute to -1. so if you were doing a VTABLE_equals instead of VTABLE_same it would come back different 17:18
and it shifts out one of the handlers from the iter 17:19
but other than that, it's the same PMC
17:19 bluescreen left
whiteknight if you're seeing weird failures, it's likely a bug 17:21
plobsing in winxed, ===/!=== has nothing to do with vtables 17:24
17:24 ambs left
plobsing s/!=/!/ 17:24
NotFound plobsing: it has. issame and isntsame first check PMC * equality, then call VTABLE_is_same 17:26
17:27 cogno left
plobsing NotFound: eq_addr/ne_addr do not 17:27
17:27 ambs joined 17:28 cogno joined
NotFound plobsing: winxed uses issame and isntsame. 17:29
plobsing NotFound: OpSameExpr.emitop_if 17:30
dukeleto ~~
17:30 bluescreen joined
tadzik hello dukeleto 17:31
dukeleto tadzik: wazzup
tadzik Uninsane
NotFound Mmm... something wrong here.
plobsing I think the concept of address-equality is useful
dukeleto tadzik: busy with school, or hacking on parrot stuff? 17:32
NotFound The problem is that currently !== and === do differents thing depending on its usage. 17:34
tadzik dukeleto: busy with school. Like 15 minutes ago everybody on my semester got to know that tomorrow's labs are not from Async FSMs, but from Microcontrollers. Madness
NotFound But I don't think that may explain your problem.
plobsing my problem is this: if I throw, rethrow, and reuse for exceptions an object, somewhere down the line, a new object gets created (which doesn't have the same address) 17:38
17:39 ambs left
plobsing grabs lunch 17:40
dukeleto Interesting new implementation of Smalltalk on Rubinius: github.com/rkh/Reak
17:43 ambs joined
whiteknight plobsing: That definitely sounds like a bug to me. If you can track that down to a test case, I'll fix it for you 17:43
17:45 ambs_ joined, ambs left, ambs_ is now known as ambs 17:46 plobsing left
NotFound I can reproduce it with a short example. 17:48
But it looks like the problem is not !== failing, looks like the handler gets disabled. 17:49
whiteknight does handler get disabled on rethrow? 18:01
NotFound winxed does finalize and pop_eh at the start of the catch block, so I'm not sure what's exactly happening. 18:02
whiteknight I found some problems with the finalize op in my exceptions branch, I need to fix it 18:03
NotFound The problem is not in rethrow, is the next throw with the same exception object what fails. 18:04
whiteknight so using throw after rethrow? 18:07
throw->rethrow->throw fails?
NotFound Yes
whiteknight Can you write a PIR test case for me? I'll fix it soon
cotto_work good morning 18:08
whiteknight good morning, cotto_work
dukeleto cotto_work: wilkommen!
18:13 cogno left
cotto_work whiteknight: awesome blogging. 18:21
whiteknight thanks! I've been such a damn lump lately with it. I'm trying to get back into the swing 18:22
I am working on a post for tomorrow that has a lot of fun new ideas in it
nopaste "NotFound" at 192.168.1.3 pasted "throw - rethrow pir example" (62 lines) at nopaste.snit.ch/28199 18:23
NotFound whiteknight: here is
18:26 JimmyZ joined
JimmyZ cotto_work: good morning 18:27
whiteknight NotFound++
cotto_work JimmyZ: good evening 18:28
JimmyZ hehe
cotto_work: github.com/parrot/parrot/commit/f2af827fca 18:29
18:35 plobsing_ joined
NotFound plobsing_: take a look at this: nopaste.snit.ch/28199 18:39
18:41 JimmyZ left
dalek Heuristic branch merge: pushed 77 commits to parrot/nwellnhof/unicode_filenames by nwellnhof 18:44
whiteknight the github wikis are getting more and more attractive looking 18:45
the ability to write pages in POD, the ability to download the entire wiki as a git repo (and can submit pull requests on them), to have access restrictions managed by github, these are all very attractive features 18:46
18:47 cogno joined
plobsing_ but github bugtracker ticket numbers are not stable 18:47
close ticket 1, all tickets get renumbered
not yet an acceptable trac substitute
cotto_work how are you supposed to link to a ticket?
whiteknight yes, you're right. The github issue tracker is still the weak link in the chain 18:48
I've never been happy with it
cotto_work wishes for git-backed trac
whiteknight You can link to a ticket from the github wiki, they do have a markup for that
but plobsing is right that the feature won't be great to use until the issue tracker stops sucking
ability to edit POD docs in an online WYSIWYG editer has me salivating 18:50
NotFound: Can you explain that code example to me? when I run it, it fails with unhandled exception and prints a backtrace 18:52
plobsing_ whiteknight: the unhandled exception is happening *within* the catch3 part (which should catch the exception) 18:53
18:53 nwellnhof joined
dukeleto whiteknight: i talked to some Github peeps at the Git Together, and they say some awesome stuff is coming down the line, such as online conflict resolution, and more configurable timelines 18:53
whiteknight dukeleto: That's all very good to hear, but the issue tracker is still garbage and unusable 18:54
All the other features are great, but the issue trackers are bad
if they could radically improve issue trackers, so that they were as functional as what Trac offers, I would switch to it in a heartbeat
nwellnhof whiteknight: in nwellnhof/unicode_filenames i made some changes to the embed api. i'd like to know what you about them. 18:55
whiteknight a git-based issue tracker that I could clone and search/update/manipulate locally would be awesome, but I suspect pretty far away
nwellnhof: okay, awesome. I'll take a gander
nwellnhof i changed Parrot_api_load_bytecode_file and Parrot_api_wrap_imcc_hack to accept Parrot_String instead of const char *.
dukeleto whiteknight: i guess you get what you pay for
whiteknight plobsing: I'm not sure I understand why catch3 is throwing an exception, or what that's supposed to prove 18:56
nwellnhof whiteknight: then i added Parrot_api_string_import which accepts a string in the platform encoding.
cotto_work dukeleto: We get way more than we pay for.
which is good, given our budget
plobsing_ whiteknight: sd bugtracker might be something you would find interesting (can work git-based IIRC)
whiteknight dukeleto: true, but we're not paying for Trac either. Also, it's possible in the future that PaFo could be paying for service on Github
nwellnhof whiteknight: and i added an encoding argument to Parrot_api_string_import_binary 18:57
NotFound whiteknight: that is the problem, the last exception handler doesn't catch the exception.
whiteknight NotFound: Oh
dukeleto whiteknight: not if we have our non-profit docs in order. Github gives away private repos and increased disk space to non-profits 18:58
dalek rrot/nwellnhof/unicode_filenames: 72f7f5a | nwellnhof++ | / (29 files):
Merge branch 'master' into nwellnhof/unicode_filenames

Conflicts:
  \tcompilers/imcc/main.c
  \tsrc/packfile/api.c
  \tt/src/embed/api.t
dukeleto whiteknight: and we are hosting our own Trac instance. Not the same.
whiteknight dukeleto: Right. Regardless, if we had money to pay for a good host like Github, I wouldn't mind paying it
dukeleto whiteknight: indeed. 18:59
whiteknight: we already changed ticket systems once. I don't know if we will again. I was barely involved, but it seemed at least as painful as the svn -> git migration
NotFound sings 'If I were a rich man' 19:00
cotto_work dukeleto: it was not pleasant
though it was also not especially well-communicated, iirc
whiteknight I disagree. I think it was not so bad. If it was bad, it was because we had so much cruft built up in RT
plobsing_ we should fully separate exception information from the thrown object. Exception should be an implementation detail for the ephemeral information and throwers should not be required to know about it.
whiteknight It was a lot of work, but many many tickets got triaged in place, not migrated 19:01
cotto_work not as much work as svn->git though
dukeleto whiteknight: yeah, the svn -> git migration was such a pain, it is hard to compare it to other things
cotto_work I think that much of the effort was because it's exhausting to look through every ticket, let alone decide which ones to migrate. 19:02
whiteknight The issue isn't that migrating issue trackers is hard. The issue is that we're very bad at managing our ticket queues
NotFound All your exception are thrown to us!
whiteknight we let too much crap build up in there. We have too many tickets that will never close
cotto_work throws a NotFoundException
whiteknight not without somebody taking initiative and saying "forget this this. WONTFIX"
cotto_work whiteknight: I love doing that. 19:03
whiteknight me too. It's good to say "there isn't enough information. I can't reproduce it. Forget it"
dukeleto i think we need some rule like "if a ticket hasn't been touched in 2 years, WONTFIX it"
whiteknight or ALREADYFIXED it
dukeleto anything else is just lying to ourselves
whiteknight exactly
dukeleto i think we need some similar policy for old branches, but I don't want to delete old branches. I have been thinking that any branch that hasn't been touched in at least a year gets moved to the historical/ prefix 19:04
NotFound Histerical?
whiteknight I was thinking almost the same with any branch more than ~5000 commits behind master
dukeleto so that future parrot historians can mine it for historical significance
whiteknight: sure. the actual rule isn't important, just that we have some kind of cut-off that says "this branch will most likely never be merged" 19:05
also, some branches were interesting explorations, but we know they will never be merged, so we can put those in historical/ too
whiteknight Some branches just get forgotten. I have about 3 or 4 that I can delete tomorrow if I can talk to chromatic about them
two more I can delete by the end of the week because they've been superceeded
dukeleto: Just having the branch doesn't help nearly so much as a short written summary of what was attempted 19:06
and if we can't even figure out if the branch is viable, there's no way we're going to get a summary written
19:07 plobsing_ left
dukeleto whiteknight: that is what commit messages are for 19:08
whiteknight: i just want to sort out "branches that are currently being worked on" from "branches that are dormant" 19:09
whiteknight NotFound: This example you wrote up is interesting and troubling 19:11
cotto_work at least the dormant branches are trivially easy to find now
NotFound whiteknight: yeah
19:12 KatrinaTheLamia left, davidfetter joined
nopaste "whiteknight" at 192.168.1.3 pasted "working example for NotFound++" (65 lines) at nopaste.snit.ch/28204 19:13
whiteknight NotFound: if I add in a second handler, catch4, it works 19:14
if you take out the push_eh catch4, it fails again
even though count_eh says there is 1 handler
very very interesting
somehow, a rethrown PMC is skipping 2 handlers in it's iterator 19:15
if I replace the last fail with a fail_re, we get weird behavior too
the fail_re throws, but never rethrows
NotFound Very nice 19:16
whiteknight so I think that rethrow is causing the iter to get 1 element ahead
NotFound boycottameetingday.com/
whiteknight so it skips a handler
NotFound Not related, but inspiring page.
19:17 Eclesia joined
Eclesia hi 19:17
atrodo NotFound> I just saw that too. That TED talk was one of the least impressive I've seen, which is strange
NotFound Sometimes I go to meetings with the Nintendo DS just in case 19:20
19:22 plobsing_ joined 19:29 bluescreen left
dukeleto is seeing lots of new warnings on master 19:33
src/embed/pmc.c: In function ‘Parrot_api_pmc_find_method’:
src/embed/pmc.c:584: warning: variable ‘interp’ might be clobbered by ‘longjmp’ or ‘vfork’
sounds dicey
dalek rrot/rethrow_madness: ea68a95 | Whiteknight++ | t/op/rethrow.t:
add failing test case from NotFound++ to illustrate the problem
19:34
rrot/rethrow_madness: 777bd1b | Whiteknight++ | t/op/rethrow.t:
narrow down the test a little bit more
whiteknight dukeleto: I'll take a look at that one later. What compiler you using? 19:35
dukeleto whiteknight: gcc 4.4.3 19:38
Eclesia I just pulled the latest parrot and tryedto compile it but I have this error : pastebin.com/m4Ue2bSU 19:43
I'm not familiar with 'make' compilation, anyone could have a look ?
19:44 bluescreen joined
atrodo Eclesia> have you installed parrot before? 19:44
Eclesia yes
cotto_work dukeleto++
Eclesia atrodo: I must uninstall it ? 19:45
atrodo Not sure how to solve it, but that's where that error comes from.
cotto_work Eclesia: it looks like Parrot is finding some old bytecode.
plobsing_ the problem is that our makefile doesn't have all pbc files depending on PBC_COMPAT
so old pbc doesn't always get regenerated
atrodo Eclesia> That's what I've done in the past, but I suspect there's a way around it that I'm unaware o 19:46
cotto_work Eclesia: did you just update git? You'll probably need to do make reconfig
*update a git clone
Eclesia I made : git pull , perl Configure.pl , make nothing else
cotto_work ok. reconfig is better. It'll clobber anything that might be out of date and rerun configure.pl 19:47
Eclesia ok
plobsing_ like I said, some old PBC is not catching the PBC_COMPAT change. the quick fix is 'make realclean; perl Configure.pl; make'
the full fix, for someone who likes makefile munging, is to update the deps of the offending PBC files. 19:48
cotto_work Yeah. The need for reconfig is basically scar tissue that we've built to deal with poor pbc dependencies. 19:49
dalek rrot: 09258d5 | dukeleto++ | / (2 files):
[TT #1965] Make the Rational PMC act sanely when used in a boolean context, doughera++
Eclesia I'm not familiar with all this sorry. :D (Learn programming asm > vb > java , but not C/C++ so first time I really play with makefiles) 19:50
19:50 cogno left
cotto_work Eclesia: don't worry about it then. Just run reconfig often. 19:51
(which is a shortcut for make realclean && perl Configure.pl)
whiteknight dukeleto: Can you open a ticket for me with those warnings? I want to work on them and I don't want to forget it 19:52
Eclesia cotto_work: thanks, it worked this time
cotto_work Eclesia: Glad to hear it . Thanks for being patient.
Eclesia no problem, if you want me to test stuffs on my pc (not to complicated). I'll be glad to help a little when I have time. :) 19:54
19:54 wagle left
dalek TT #1965 closed by dukeleto++: rational.pmc's get_bool is backwards and not portable 19:55
TT #1965: trac.parrot.org/parrot/ticket/1965
plobsing_ I'd argue that rational.pmc's get_bool is still backwards 19:56
at least it is portable now though
dukeleto Eclesia: do you need stuff to work on? I can suggest some easy tickets for you to cut your beak on :) 19:57
19:57 wagle joined
dukeleto Eclesia: git clean -fdx will wipe out any compile-cruft from your git repo, but make sure you don't have any uncommitted files that you care about! 19:58
Eclesia: and you will often need to "make realclean" after you update your parrot.git repo
Coke (issue tracker you can clone and work on locally) - it may not be git, but obra already wrote that.
dukeleto Eclesia: github.com/leto/Util/blob/master/bin/new_parrot <-- you can steal that for an easy way to compile new a parrot 19:59
Coke (ticket migration at least as painful) HAHA HA HA HA.
cotto_work Coke: I thought you might have some thoughts.
Coke (it was a complete and utter (&*# waste of time and energy. I would not recommend repeating it.)
dukeleto Coke: :)
Coke (wontfixing based on age alone) bad idea. wontfix it based on wontfixing it. 20:00
20:01 cogno joined
Coke Eclesia: you either need to use a more recent parrot, or remove your install directory and re-install. 20:01
TimToady phone?
Eclesia Coke: the problem is solved :) the realclean did the trick
dukeleto Eclesia: that script assumed that you put $PWD/installed_parrot in your $PATH and that you are updating the git repo with something like "git pull --rebase"
Coke Eclesia: awesome. 20:02
dukeleto Eclesia: note that my new_parrot script does that already, for you :)
Eclesia I made my small script already
dukeleto Eclesia: to each their own 20:04
dalek Heuristic branch merge: pushed 100 commits to parrot/nwellnhof/platform_src by nwellnhof
Eclesia question : when building parrot, I seen a line about opengl available or not on my pc. does that mean parrot contain a low level api for rendering ? 20:10
or is it a plan for parralal computation on the gpu ?
plobsing_ Eclesia: it contains a relatively small, simple library binding to OpenGL 20:11
simple in the sense that it forwards the C API to you, not in the sense of "easy to use"
NotFound Eclesia: see examples/opengl/
dalek TT #1981 created by dukeleto++: Many new warnings like: warning: variable ‘interp’ might be clobbered by ... 20:12
TT #1981: trac.parrot.org/parrot/ticket/1981
dukeleto Eclesia: and our opengl bindings are known to have some problems on OS X, in case that is important to you
Eclesia nope, I'm on mint
nwellnhof dukeleto: have you been able to test nwellnhof/platform_src on a bsd system by chance? 20:13
dukeleto nwellnhof: i have not, but I can try now. Do you care between FreeBSD or OpenBSD ? 20:15
nwellnhof dukeleto: any bsd should be fine
whiteknight nwellnhof: The API work you've done looks good. The IMCC work you've done looks pretty good too. 20:16
so big +1 from me
I wish we didn't have to use the PIO_* macros in IMCC, but I guess it can't be helped 20:18
unless we wanted to convert IMCC over whole-hog to reading input from an IO PMC instead of a low-level file handle
and there probably isn't any real reason to make that kind of a change 20:19
nwellnhof whiteknight: i will replace the PIO_* macros with direct function calls like Parrot_io_* after platform_src has been merged 20:20
i also tried to make IMCC read whole input files before, but i see no reason to do it. it only makes things more complicated. 20:22
NotFound There is a reason but I don't think PIO is ready for that: being able to read UTF16 and UTF32 pir sources. 20:24
nwellnhof NotFound: PIO is ready for that now
NotFound nwellnhof: good 20:25
whiteknight nwellnhof: Let me know when you try to make changes like that to IMCC. I have some work I want to do in IMCC in the near future, and I don't want to conflict with you
let me know when you're working on it, and I'll go do something else for a while
20:27 fperrad left 20:33 cogno_ joined 20:35 hudnix left, cogno left
nwellnhof whiteknight: besides the unicode filename thing, i have no other plans regarding imcc 20:37
dukeleto nwellnhof: i am compiling platform_src on openbsd now 20:42
nwellnhof dukeleto: great, thanks a lot
dalek rrot/nwellnhof/unicode_filenames: 542c524 | nwellnhof++ | compilers/imcc/main.c:
Fix for filenames in IMCC error messages
20:44
nxed: r738 | NotFound++ | trunk/winxed (2 files):
set exit values in stage 1 compiler and check them in the driver
20:48 hudnix joined
dukeleto nwellnhof: build was successful. Gonna run "make smoke" now 20:49
nwellnhof: crap!
nwellnhof: i ssh'ed to the wrong machine. It was a linux machine. d'oh! 20:50
dalek rrot/nwellnhof/unicode_filenames: 8588a4c | nwellnhof++ | compilers/imcc/imc (2 files):
[codingstd] Wrap macro args
20:51
20:53 particle1 joined, perlite_ joined 20:55 plobsing_ left 20:56 particle left 20:57 perlite left, perlite_ is now known as perlite
Eclesia question, in pir files, what is the difference between # lines and text between = 21:04
cotto_work Eclesia: can you give an example of what you're talking about? 21:05
Eclesia pastebin.com/bnfGQbJa
GeJ Bonjour everyone. 21:06
cotto_work Ah. Look up Pod. It's one of the supported documentation formats in PIR.
Eclesia hi GeJ, you are french ?
pod ? 21:07
some kind of javadoc ?
cotto_work en.wikipedia.org/wiki/Plain_Old_Documentation
GeJ Eclesia: that would be correct. 21:08
Eclesia so bonsoir Gej :) 21:09
dukeleto Eclesia: # are comments, stuff between = is documentation
GeJ Eclesia: Exactly, bonjour Eclesia.
dukeleto Eclesia: perldoc somefile 21:10
Eclesia ok, so I can remove then without breaking anything ^^
dukeleto Eclesia: Parrot puts POD in many files, not just Perl files. That is a bit non-standard, but you can run perldoc on any file
dalek rrot/nwellnhof/platform_src: cd1a670 | nwellnhof++ | / (2 files):
[codingstd] Run headerizer, fix enum
21:12 bacek left
whiteknight these unicode changes from nwellnhof++ are all very nice 21:19
I'm excited to get so many improvements to our strings and IO systems added in such short order 21:20
dalek nxed: r739 | NotFound++ | trunk/winxed (2 files):
allow handle_types_except as modifier in try statement, use it and set exit
21:23 bacek joined 21:24 particle1 is now known as particel, particel is now known as particle
dalek nxed: r740 | NotFound++ | trunk/pir/winxed_ (2 files):
update installable files
21:26
21:28 whiteknight left 21:40 ambs left 21:42 bluescreen left 21:49 rurban_ joined, cogno joined 21:51 rurban left 21:52 rurban_ is now known as rurban 21:53 cogno_ left 22:01 Andy left 22:09 plobsing_ joined 22:32 plobsing_ left 22:34 Eclesia left 22:40 nopaste left, nopaste joined
bacek_at_work ~~ 22:46
dalek p-rx/nom: feb7c9c | jonathan++ | / (2 files):
Add storage_spec structure and various constants for a repr to describe how it likes to be stored inside another one.
22:47
p-rx/nom: 059f70e | jonathan++ | src/metamodel/rakudoobject.h:
Add get_storage_spec to REPR API.
p-rx/nom: 1eb962d | jonathan++ | src/metamodel/ (6 files):
Get all representations to provide a storage spec.
23:37 whiteknight joined
whiteknight good evening, #parrot 23:38
dukeleto particle: have you given 3.0.0 a whirl yet? 23:40
23:46 arnsholt left
dalek rrot/exceptions_subclass: c5c5992 | Whiteknight++ | / (7 files):
use VTABLE_does to determine whether something is a valid exception, not pmc->vtable->base_type
23:51
rrot/exceptions_subclass: 10fbc43 | Whiteknight++ | t/pmc/exception.t:
test for throwing a subclass
rrot/exceptions_subclass: 508d4de | Whiteknight++ | t/pmc/exception.t:
add a test that we can use finalize_p on a subclass of Exception
rrot/exceptions_subclass: 559c616 | Whiteknight++ | src/ (3 files):
remove most uses of enum_class_Exception from the source. Where tested, use VTABLE_does instead. When building an exception, allow for HLL mapped subclasses
23:52 hercynium left 23:55 arnsholt joined