Parrot 3.2.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot is accepted for GSoC 2011! Student application deadline is Apr 8
Set by moderator on 27 March 2011.
00:01 kid51 is now known as kid51_at_dinner 00:05 lucian left 00:12 davidfetter left
dalek rrot: 0c284b8 | cotto++ | docs/ (2 files):
add a useful gdb link to hacking_tips.pod
00:12
00:14 dmalcolm left 00:21 whiteknight joined
cotto_work whiteknight: ping 00:21
whiteknight pong 00:22
cotto_work whiteknight: what makes you think that the parrot-instrument bugs are gc-related? Aren't we defaulting to ms2 still?
whiteknight are we? I thought we were on gms now
either way, the segfaults happen in the GC
cotto_work not until after the release
whiteknight the segfaults were happening because a STRING on the freelist was clearly not free 00:24
in fact, it didn't even look like a valid string
00:33 benabik joined 00:34 theory left
benabik Evening, all 00:35
whiteknight good evening benabik 00:37
01:12 theory joined
cotto ~ 01:12
01:14 bubaflub left
tcurtis ~~ 01:15
bacek_at_work ~~~
01:19 whiteknight left 01:29 mtk left 01:35 mtk joined 01:41 utsl joined 01:42 Herat joined, kid51_at_dinner is now known as kid51
benabik The lexicals patch looks mostly sane. I think I'd probably sort all the registers w/o first_ins at the front or back of the list instead of declaring them as equal to anything else though. 01:43
Herat which testing library is better for unit testing for Parrot?
benabik (Mostly sane to someone looking at the allocation code for the first time, that is.)
01:46 Herat left
benabik Herat: Rosella appears to be the up-and-coming test library. Parrot comes with a library called Test::More that's used for it's own tests. 01:46
kid51 cotto: ping 01:54
soh_cah_toa cotto: i got a question for you 01:55
cotto ohai 01:59
I may be able to answer. I have to take off soon though.
kid51 cotto: looking at trac.parrot.org/parrot/ticket/1589 02:00
soh_cah_toa you commented on my proposal that it might be better to build the debugger around parrot-instrument. how is that possible? aren't they two separate types of tools?
kid51 Is the "search path" thought to be problematic *Parrot's* search path (whatever that might be) or parrot-nqp's?
cotto kid51, I don't think nqp would have a distinct search path 02:01
soh_cah_toa, parrot-instrument is a framework
kid51 Then where is Parrot's search path set or recorded? I don't see anything that looks equivalent to @INC in lib/Parrot/Config/Generated.pm
cotto kid51, parrot_init_library_paths in src/library.c 02:02
soh_cah_toa cotto: so you think it will take longer to integrate parrot-instrument w/ the debugger? 02:03
i figured the source has already been written. all i gotta do is use it how i feel fit
cotto soh_cah_toa, I think it'd be better to write a new debugger on top of p-i but provide a similar interface to parrot_debugger 02:04
02:04 Themeruta joined, bubaflub joined
cotto That's contingent on us getting p-i whipped into shape though. You can't build anything functional on it now. 02:05
soh_cah_toa right
02:06 NotFound left
cotto whiteknight also mentioned some questionable design decisions. I need to find out what he meant by that. 02:06
soh_cah_toa about my proposal or parrot-instrument?
cotto about p-w 02:07
p-i
soh_cah_toa phew, i was worried i'd have to revamp my proposal right before the deadline 02:08
cotto I need to be somewhere about 8 minutes ago. Bye.
soh_cah_toa bye
02:42 kid51 left 02:52 woosley1 joined 03:06 hudnix left
soh_cah_toa says goodnight to parrot 03:19
03:19 soh_cah_toa left 03:21 JimmyZ joined 03:38 JimmyZ left 03:43 bubaflub left 03:50 JimmyZ joined, JimmyZ left 04:01 JimmyZ joined 04:10 plobsing left
cotto !~ 04:12
dalek rrot: 4ce2047 | jimmy++ | docs/.parrothist.pod.swp:
removed docs/.parrothist.pod.swp
04:17
bacek_at_work cotto, ping. 04:47
04:53 ShaneC left 04:54 mikehh joined
cotto bacek_at_work, pong 04:55
bacek_at_work cotto, we do need different language for ops bodies. C is way too complex for handling.
Actually not "C", but "C macros"
E.g. "PTR2INTVAL(opcode_t *, foo)" isn't function. It's bloody text-macro 04:56
And I can't expand all macros upfront because some of them are platform dependent
cotto bacek_at_work, does this come out of your llvm work? 04:57
I figured that trying to convert our mismash of C and magic into something that's not C would expose some assumptions that'd be difficult to work around. 04:58
bacek_at_work, do you have an alternative?
bacek_at_work cotto, yes. I found it in jit_prototype branch 04:59
Some "close to C language". Or restrict subset of used constructs.
cotto Thank you for doing that work. I don't think there'd be a compelling reason to look for those assumptions without something like what you're doing.
bacek_at_work E.g. "no bloody macros which change semantic of parsing"
And "no bloody string concatenations" 05:00
cotto, yes. All of this issues aren
aren't llvm specific
they are "ops semantic handling specific" 05:01
cotto yes
any translation will need to deal with them
Have you looked at rewriting the problematic ops? 05:02
It sounds like the plan would still be to use valid C but to avoid constructs that make translation difficult. 05:03
bacek_at_work not yes
not yet
btw, I think we should put deprecation notice for current ops "language" into 3.3 05:04
If we want to have functional jit by 3.6
cotto What would we replace it with? We can't deprecate something without specifying the replacement. 05:05
Saying "stop using these constructs" is fine, if you can come up with a list of them.
Would it take you very long to come up with a list of what's problematic? 05:08
bacek_at_work I don't think that I can create comprehensive list of all problematic constructs.
before 3.3
I "discover" them when doing LLVM emitting. 05:09
cotto You could look at what Rakudo's dynops use and deprecate the difficult parts of that. 05:10
Internal ops can be rewritten as needed. 05:11
I'm also not sure that a deprecation notice is necessary. Op constructs that block jitting can be removed as we find them from Parrot and patches can be submitted to Rakudo and Partcl. 05:14
bacek_at_work But we have to prevent our HLLs to put them back in future 05:15
cotto Eventually we do need to specify the subset of C that's acceptable.
bacek_at_work yes. That's why I want to pure deprecation notice for "full C as ops bodies" 05:16
cotto My problem is that such a notice can't be acted on.
bacek_at_work yes-yes. Let's finally change our deprecation policy to "we broke it - we'll fix it for free" 05:19
cotto I'm fine with submitting patches to make jitting possible. I'm less sure about making that part of the deprecation policy. 05:21
05:33 Khisanth left
cotto bacek_at_work, does that sound workable to you? 05:35
JimmyZ the only user is nqp/rakudo...
bacek_at_work cotto, we'll see. I can't predict how many constructs we have to restrict. Hopefully not much. 05:36
cotto JimmyZ, there's also Partcl. We also need to get away from the mindset of having a fixed set of users.
JimmyZ Partcl was already broken? 05:37
cotto JimmyZ, coke recently resurrected it
05:37 theory left, zostay_ left, zostay joined
JimmyZ parrot is too young and she doesn't like constraints. :) 05:42
cotto JimmyZ, your definition of "young" doesn't seem to correspond with age 05:43
JimmyZ in her heart , hehe 05:44
cotto We're all hoping that it grows up. 05:45
05:48 ShaneC joined 05:53 Khisanth joined 06:01 woosley2 joined 06:03 woosley1 left 06:49 UltraDM joined 07:17 mj41 joined 07:34 ShaneC left
cotto sleeps 07:41
07:44 woosley1 joined 07:47 woosley2 left 07:59 pjcj left 08:13 pjcj joined 08:14 bacek left 08:23 JimmyZ left 08:25 JimmyZ joined 08:33 dod left 08:35 dod joined 08:38 ligne left 09:07 contingencyplan left 09:15 mtk left 09:19 JimmyZ left 09:22 mtk joined 10:25 dd070 joined 10:26 dd070 left 10:29 jrtayloriv left 11:05 hudnix joined 11:23 plobsing joined 11:25 Eduardow left 11:48 bubaflub joined 11:55 Patterner left, Psyche^ joined 11:56 Psyche^ is now known as Patterner 11:59 lucian joined 12:08 whiteknight joined
whiteknight good morning, #parrot 12:15
bubaflub morning whiteknight 12:16
tadzik morning #parrot and whiteknight 12:17
12:18 ambs joined
whiteknight hello bubaflub and tadzik. How are you two doing this morning? 12:28
bubaflub whiteknight: not too bad. starting work early. was sick a bit yesterday so gotta make up some hours.
12:35 JimmyZ joined 12:44 Coke left
tadzik whiteknight: moderately. Had a bloody stupid labs this morning 12:44
that's the signal theory which you like, but the labs are stupid and boring. It must be the matter of the teachers 12:45
moritz never had a lecture on signal theory, and now works on optical telecommunication link components. 12:47
oh irony
tadzik I never had a lecture either :)
moritz or s/lecture/class/ if you wish
tadzik whatever. University is like a primary school, only the naming scheme is different. Professors, not teachers. Lectures, not classes. The list goes on 12:48
moritz PHD instead of smart aleck :-) 12:49
tadzik :) 12:50
And GSoC instead of scouting camps, eh
12:57 bacek joined
whiteknight I took every signal theory class my university offered, undergrad and grad 12:59
the labs were typically very boring, but the theory and the calculus always was entertaining
I suspect my definition of "entertainment" is different from many other people 13:00
13:05 darbelo joined 13:09 lucian_ joined 13:12 lucian left 13:14 UltraDM left 13:23 lucian_ left, lucian joined 13:26 woosley1 left, Eduardow joined
jnthn_ o/ folks 13:30
No comments on my reg alloc patch ticket. I plan to try and make the reg_sort_f a bit more robust and then apply it. But not for a few hours yet... 13:31
whiteknight jnthn_: sorry, I didn't have a chance to look at it last night
jnthn_ whiteknight: No worries.
whiteknight: Mostly I'm just hoping nobody is like "OMG DON'T DO IT" :) 13:32
darbelo jnthn_: you could msg plobsing about it, if he can't see anything wrong with it I doubt anyone else will. 13:35
jnthn_ darbelo: I think cotto++ already did msg plobsing++ about it last night. :) 13:36
darbelo Then you are probably good to go :) 13:37
jnthn_ Yes, but plobsing++ didn't reply yet ;-)
Anyway, will backlog later on...gotta go do some other bits for a while...
13:37 mikehh left 13:42 woosley left 14:12 mikehh joined 14:25 theory joined
mikehh clock? 14:28
whiteknight jnthn_: That patch looks perfectly reasonable to me
tadzik aloha: clock?
aloha tadzik: LAX: Thu, 07:28 PDT / CHI: Thu, 09:28 CDT / NYC: Thu, 10:28 EDT / UTC: Thu, 14:28 UTC / LON: Thu, 15:28 BST / BER: Thu, 16:28 CEST / TOK: Thu, 23:28 JST / SYD: Fri, 00:28 EST
whiteknight jnthn_: if it doesn't cause any test failures, or problems in NQP/Rakudo I'm fine if it goes in
moritz mikehh: a clock is what hangs on the wall and does tick tick tick :-)
14:29 theory left
mikehh moritz: I typed in the wrong tab - I have a separate tab open for aloha :-} 14:29
moritz :-) 14:30
mikehh moritz: also #perl6, #kubuntu and #ubuntu+1 and... 14:31
14:52 JimmyZ left 14:57 Themeruta is now known as NotFound 15:09 fperrad joined
mikehh t/src/extend_vtable.t blows up completely with g++ build (TT #2084) coretest/test and src_tests 15:31
all other tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at 3_2_0-146-g4ce2047 - Ubuntu 11.04 beta i386
cotto_work ~~ 15:48
15:48 mj41 left
darbelo ~~ 15:51
15:52 luben_ joined 15:53 luben_work joined, luben_ left, luben_work left, luben_work joined, luben_at_work joined, luben_work left, luben_at_work left, luben_at_work joined
whiteknight installed the ubuntu 11.04 beta. Bugs 15:54
then I tried to install the gnome3 tech preview. now the VM doesn't work anymore 15:55
cotto_work That way lies madness.
whiteknight I had to delete the whole VM image, it froze on bootup
mikehh whiteknight: running Ubuntu 11.04 beta i386 now - NOT with gnome 3 though 15:58
whiteknight I know it's early in the release cycle for gnome, and there are bound to be all sorts of bugs to work out still
mikehh whiteknight: never managed to get the VM working properly with my system though - re-boot to switch 15:59
whiteknight and mixing that with the ubuntu beta is just a recipe for disaster
mikehh well they do warn that the beta is NOT production ready 16:00
whiteknight right, of course
I was only testing. The test turned to disaster
no harm done
mikehh well I am testing parrot on it :-} 16:01
whiteknight when is the real 11.04 release happening? 16:02
16:02 contingencyplan joined
lucian whiteknight: i guess i'm lucky i couldn't even get gnome-shell to build on my arm netbook 16:03
i'm determined to try it, regardless how much i think it sucks from the screenshots and docs i've seen
mikehh whiteknight: end of the month - I think
whiteknight you think it looks like it sucks? I was thinking it looked awesome
lucian it looks pretty, sure 16:04
but the UI? lots of things seem wrong
lots of vertical space waste
what appears to be rather bad design for that dock thing 16:05
i always dislike gnome though, so i guess i'm biased
there are some things i like, but kinda few. but i'll reserve full judgement until after it builds ...
mikehh whiteknight: April 28th - according to the wiki 16:06
whiteknight I definitely prefer Gnome over KDE, at least the versions I've used so far 16:07
I'm eager to try the latest of each, to see if my preferences stay true
benabik Morning. 16:08
16:08 theory joined
mikehh whiteknight: I have Kubuntu 11.04 amd64 beta+ as well as Ubuntu 11.04 i386 beta+ (+ = updated ) 16:08
cotto_work hi benabik
lucian whiteknight: the first time i tried gnome they'd already gone on the option-removal spree a few times. i'm still extremely frustrated when i have to use it 16:09
whiteknight mikehh: what version of KDE does kubuntu 11.04 use?
mikehh not sure which I prefer - getting used to Unity
whiteknight Unity doesn't appear to be too radically different, to my eyes
mikehh the latest I think (4.6 or something)
16:10 jrtayloriv joined
lucian whiteknight: no, it doesn't. the only thing i really like about it is the vertical space savings. like the lovely global menu that actually works most of the time 16:10
whiteknight I'm going to download the latest kubuntu beta now and give it a spin
cotto_work worst IDE ever: i.min.us/ikq8hS.gif 16:11
benabik cotto_work: Guh. 16:12
lucian whiteknight: i used to really like kde, and i generally like the tech in kde4
16:13 PacoLinux left, PacoLinux joined
whiteknight VirtualBox is extremely empowering. I can install new OSes, play with them, uninstall them, etc 16:26
All the while I'm still on the internet and still working on other stuff 16:27
lucian whiteknight: yes, but still inefficient sadly 16:32
whiteknight why do you say that?
lucian whiteknight: hosts do a lot of things that are ultimately redundant
strongly-para-virtualisation is what i'd like to see, but sadly it's unlikely 16:33
whiteknight regardless, I wouldn't say I notice a particular performance problem running VirtualBox like this
I devote an entire CPU core to the VM, turn on hardware virtualization support, and you would almost never know it was a VM
and since the installs go so quickly, I can really do a lot of playing in a short amount of time 16:34
lucian whiteknight: sure, if you have that sort of hardware to throw at it
colinux or w/e it's called seems a better idea to me, but even that's deeply flawed 16:35
whiteknight never heard of it 16:36
lucian whiteknight: www.colinux.org/
it's a hack, rather ugly too
but it has some of the elements i'd like to see more in virtualisation 16:37
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#14082) fulltest) at 3_2_0-146-g4ce2047 - Ubuntu 11.04 beta i386 (gcc --optimize)
whiteknight kde4.6 is pretty damn sweet 16:43
tadzik yes it is 16:44
the startup time is ridiculous, but it's quite nice to use
I even dropped a tiling window manager for it, it had just enough features 16:45
16:45 luben_at_work left 16:48 jrtayloriv left 16:53 M_o_C joined, fedov joined 16:58 soh_cah_toa joined 17:00 dodathome joined 17:10 ShaneC joined 17:12 ShaneC left 17:14 soh_cah_toa left, M_o_C left 17:16 M_o_C joined 17:28 ShaneC joined 17:37 fedov left 17:44 nnunley joined 17:45 nnunley left, nnunley joined, nnunley left
lucian whiteknight: tadzik: sadly it's too heavy for my netbook, apparently 17:50
i think it's just that 2d isn't accelerated because of crap drivers 17:51
ram isn't full at all
tadzik yeah, it's not designed with lightness in mynd
intel gpu?
dalek tracwiki: v46 | dukeleto++ | GSoc2011
tracwiki: trac.parrot.org/parrot/wiki/GSoc201...ction=diff
17:54 darbelo left
lucian tadzik: powervr 17:54
it an arm cortex a8
tadzik oic 17:56
so I guess that KDE4 with Netbook theme is just a marketing?
lucian no, it's pretty good 17:58
as i said, i suspect it's just that the 2d drivers on this thing suck ass 17:59
redraws are very, very, very slow
17:59 darbelo joined
lucian when i switch to xchat, it takes almost a full second to slowly redraw the log box 17:59
for me it's a bit annoying. i tend to prefer gnome's infrastructure (gobject) 18:00
from a developer ease of use p.o.v. 18:01
but Qt kicks Gtk's ass at pretty much everything
(else)
18:01 mj41 joined
tadzik well, I'm a Gtk guy, but I'm on KDE 18:01
lucian yeah, API-wise (and dynamic binding wise) gtk is better 18:02
tadzik that might be something about C++ and this dirty Q_OBJECT magic
lucian but the actual UI toolkit doesn't even compare
tadzik: there's KDE's SMOKE, which is nice
tadzik SMOKE?
lucian but still C++ crap, it shows
tadzik I pretty like Vala
lucian tadzik: similar to gobject-introspection
tadzik I see
18:02 mikehh left
lucian yeah, vala is nice 18:03
i was thinking it would be ironic to write a Qt backend for vala
since it already has posix and js profiles
18:03 M_o_C left
tadzik Really? I'd probably use it 18:03
lucian well, vala isn't exactly *nice*, just much less sucky than C++ or C#
tadzik I don't think how Vala handles C++ though
lucian tadzik: it wouldn't. it'd spew C and use Qt's C api through SMOKE 18:04
tadzik oh, which language is good instead of being "less worse"?
lucian it might actually work
tadzik: i dunno, none of them are actually good
tadzik that's it
lucian python is alright, js is almost bearable
scheme is nice, but useless. common lisp is useful but crappy
tadzik I love Perl, but it's a bit overfeatured in some places imho 18:05
lucian see, there i can disagree easily :)
PerlJam tadzik: like where?
tadzik PerlJam: I think a mutable grammar is just too much of a hassle compared to the usefulness. Maybe I just haven't seen it shining 18:06
whiteknight not the default object model 18:07
lucian i agree with steve yegge's description of perl as "exploded whale guts"
but perl6? if i could get over the syntax, maybe
PerlJam tadzik: that's what you get when a linguist designs your language. :-)
tadzik Perl 5 ended up with "this this and this is nice, keep away from this, this and that". I'm afraid Perl 6 will have a similar future one day, so people will say "OK, we use Perl 6 but w/o this, this and that" like they do in C++ nowadays 18:08
PerlJam: probably :)
benabik tadzik: I've yet to see a programming style guide that didn't have "don't use feature X" in it, for any language.
tadzik how about C? (goto doesn't count, goto doesn't count!) 18:09
lucian tadzik: oh come on, it's full of design flaws
don't use unions, don't use strings
PerlJam tadzik: don't use unions
tadzik right, unions are so-so 18:10
lucian tadzik: they're *BONKERS*! :)
tadzik :)
alright, I see it now. Yeah, a good language is an asymptote
lucian oh, don't use ++, don't use expressions with side-effects
well, some folk somehow encourage that 18:11
tadzik ++? Come on, it's not Python
lucian tadzik: ++a i meant
tadzik why not?
readability reasons?
PerlJam tadzik: Perl encourages people to use subsets of its functionality. There's a reason for this :)
lucian mostly
benabik Assignment in expressions. 18:12
lucian tadzik: it's the same issue, hard to figure out side-effects
tadzik I see
whiteknight I've got no problem with unions. Parrot used to use a lot of unions 18:13
we got rid of them, not because we didn't like to use them, but because of otherwise bad design
lucian whiteknight: they're extremely weakly typed, extremely dangerous
whiteknight lucian: depends how you use them 18:14
lucian there are no checks whatsoever to make sure you're reading the same type you last read
cotto_work C has sharp edges. News at 11.
lucian s/read/wrote/
cotto_work: it has deliberate sharp edges, i think
whiteknight PMCs used to have a "UnionVal" structure, which was a union of PMC, STRING, FLOATVAL, and INTVAL
cotto_work lucian: I agree. It's hard to have C's power without its lack of safety. 18:15
18:15 dmalcolm joined
whiteknight an Integer PMC used to store its value in pmc->uval.intval 18:15
cotto_work whiteknight: I remember taking that out.
whiteknight cotto_work: yeah, we did, but not because unions are bad
lucian cotto_work: i'm not convinced. with very little extra effort, same power and very small perf hit much better can be done
whiteknight storing the data directly in the pmc structure created problems with inheritance 18:16
cotto_work lucian: btw, I like what Cyclone does but I'm not sure how it'd apply to M0. 18:17
(wrt pointer safety)
lucian cotto_work: uh, guarantee bounds checks i guess
cotto_work lucian: do you have the tuits to propose something based on the current m0 spec? 18:18
lucian cotto_work: i don't think i'm qualified. and i'm not sure i have the time right now
cotto_work lucian: your input would be welcome if you can find the time. 18:28
lucian cotto_work: ok, i'll have a look. sorry i can't promise some time
cotto_work lucian: thanks. 18:33
lucian: no pressure. I'm sure that GSoC will be taking most of your time in the near future, should your proposal be accepted. 18:36
lucian cotto_work: and my damned dissertation :)
18:50 soh_cah_toa joined
soh_cah_toa so i've been considering taking on ticket #1215 but i need to know a few things about the .ops files first 18:55
within the functions for each op, i see things like $1 and $2. do these refer to the arguments? 18:56
benabik soh_cah_toa: AFAICT they do. 18:57
soh_cah_toa it also looks like the parameters declarations are reversed from the traditional "type name" format. so would a parameters that reads "out PMC" mean that out is the variable name and PMC is the type? 19:00
benabik That means that argument is a PMC register used for output. 19:01
soh_cah_toa are they any docs detailing the format of .ops files?
b/c i don't need to make another op. all i need to do is create a function that the ops can call 19:03
benabik It appears to be "{in,invar,inconst,out} {PMC,INT,STR,NUM}"
soh_cah_toa okay 19:04
benabik PDD 5 describes opcode formats, but looks out of date.
soh_cah_toa oh yeah, i read that and it wasn't very helpful. you're right 19:05
benabik The grammar that parses them is in compilers/opsc/src/Ops/Compiler/Grammar.pm... 19:07
Probably too verbose. I think it's supposed to just be mangled C code.
soh_cah_toa it looks like between BEGIN_OPS_PREAMBLE and END_OPS_PREAMBLE is where you define c code and not ops. is that right? 19:08
whiteknight yse 19:09
yes
soh_cah_toa okay 19:10
benabik Yay, someone who knows what they're talking about! 19:11
soh_cah_toa what i need to do is define a function (not an op) that fetch and vivify can call rather than copy/paste the same code in each ops
but if it's just a c funcion and not an opcode defintion, how can i take PMC types as arguments?
do i just leave out the "op" statement? 19:12
benabik I believe there's a PMC C type, generally passed around as pointers. 19:13
cotto_work soh_cah_toa: PMCs are just PMC* in C. 19:14
soh_cah_toa okay
19:18 bbatha joined
soh_cah_toa alright, suppose i have a function foo() that contains all the code common to fetch and vivify. if there's 3 variants of fetch that take different argument types, does that mean i need 3 variants of foo()? or can i use a void pointer? 19:19
b/c if that's the case, i don't see how that'd be an improvement
sorry, i'm still trying to figure out the op grammar 19:20
whiteknight The $1, $2, $3, etc things in the op defs are the arguments 19:25
so from PIR code, if I call "$P0 = foo $P1, $I2", $1 will be $P0, $2 will be $P1, and $3 will be $I2 19:26
so in your op body code, you can call Parrot_my_new_function(INTERP, $1, $2, $3), or watever 19:27
soh_cah_toa right but i don't need to define a new op, just a function
whiteknight or you can assign to it: $1 = Parrot_my_function(INTERP, $2, $3)
the ops2c compiler fills in the blanks. If you are brave (and if your machine has a lot of RAM), check out the file core_ops.c
soh_cah_toa alright 19:28
whiteknight To add a new function, here are the basic steps: Add the new function in the correct file. Run headerizer. Use your new function
dalek rrot: 51100ab | jonathan++ | docs/translations/README.BGR:
Apply patch from TT#2087 to fix a bug relating to lexicals and register allocation. A lexical only ever allocated a register with .lex 'foo', $Pn and then only used for the storage slot to be looked up by name would end up with its allocation need being overlooked, since it got mistook for optimized out instructions.
19:29
nxed: r939 | NotFound++ | trunk/winxedst0.cpp:
improve indentation of stage 0 generated code
19:30
benabik jnthn_: That commit does not appear to match its description.
jnthn_ oh what the fuck
whiteknight benabik: jnthn_ is such a rockstar, he writes code in what appears to be conversational bulgarian 19:32
benabik whiteknight: He wrote code in bulgarian before it was mainstream?
NotFound Maybe the real code is in whitespace mixed with the text. 19:33
whiteknight I said rockstar, not hipster
soh_cah_toa but what i mean is: i'm copying the common code into a function that the ops can call. if one version of fetch take 3 pmcs, a string, and another pmc as arguments so does my function b/c the common code obviously makes use of the arguments. but if another variant of fetch takes 4 pmcs, i need another foo() that takes 4 pmcs as well
and that seems stupid
whiteknight soh_cah_toa: Have one version of foo() that takes all the parameters, and apply a default value in cases where there are fewer arguments
jnthn_ fixes
soh_cah_toa that could work 19:34
NotFound soh_cah_toa: if the code uses different parameters, maybe it's not so common.
19:35 theory left
soh_cah_toa well it's the same code for the most part. just w/ different types 19:35
it's in ticket #1215
whiteknight soh_cah_toa: the vivify opcodes, correct?
soh_cah_toa yeah, and fetch 19:36
whiteknight okay, for vivify the third argument is just a key. Once you use the key to look up the value, pass the value to the foo() function. You don't need to send the key
for instance, in the opcode vivify_p_p_i_p, most of the contents of the if block can be factored out into the function. That logic only relies in $1 and $4 19:37
likewise for the opcode vivify_p_p_p_p
the get_pmc_keyed_ and set_pmc_keyed parts can stay in the op body 19:38
soh_cah_toa alright
whiteknight that block of code looks identical for all fetch and vivify opcodes
so the only difference between all those ops is where we look for the value initially, and where we save it back to after it's created
NotFound soh_cah_toa: the "most part" is the common code.
soh_cah_toa alright, so i'd just factor out the if. that's better. i was trying to scoop in too much at once 19:40
dalek rrot: 020b9ec | jonathan++ | compilers/imcc/reg_alloc.c:
Oops, last patch was not what I intended. This time for real: apply patch from TT#2087 to fix a bug relating to lexicals and register allocation. A lexical only ever allocated a register with .lex 'foo', $Pn and then only used for the storage slot to be looked up by name would end up with its allocation need being overlooked, since it got mistook for optimized out instructions.
19:42
soh_cah_toa do i really gotta run experimental.ops through headerizer though? it's just one function and it wouldn't even need a protoype b/c the preamble comes before anywhere it's used 19:43
dalek p/ctmo: ad4b814 | jonathan++ | src/ (3 files):
Make native types declared in the setting be lexically scoped.
p/ctmo: 89440ca | jonathan++ | build/PARROT_REVISION:
Bump Parrot revision to get lexical register allocation fix.
soh_cah_toa or is that just the parrot way?
dalek p/ctmo: 9a54b8e | jonathan++ | src/Regex.pir:
Remove debugging comment accidentally left in.
19:45
NotFound I think OPS_PREAMBLE is only used to define macros and do includes, using it for C functions may be unexpected and untested.
soh_cah_toa okay
so i'd make a separate c file w/ my function. run it through headerizer. include the header file generated in experimental.ops in the preamble 19:47
NotFound Maybe is better to add that function to oo.c
whiteknight: What do you think? 19:48
soh_cah_toa well it wouldn't have anything object-oriented about it 19:50
whiteknight I would put it in pmc.c for now
we can always find a better home for it
NotFound Fine for me
soh_cah_toa and include pmc.c in the preamble?
whiteknight soh_cah_toa: no, that's not necessary. It's already included 19:51
NotFound soh_cah_toa: *never* include a .c file.
soh_cah_toa wow, i has not thinking there
*was
NotFound Never think about doint it, not even by mistake ;) 19:52
Don't even dream about doing it.
soh_cah_toa yeah i know 19:53
NotFound Else, you'll be condemned to write Cobol in hell all eternity.
soh_cah_toa sorry but lisp is my idea of hell
whiteknight not cobol! anything but cobol!
PerlJam whiteknight++ 19:54
soh_cah_toa don't worry. i wouldn't noticed my mistake long before committing 19:55
NotFound soh_cah_toa: fine, the you'll write Cobol code generators in lisp-
19:55 bbatha left
soh_cah_toa the funny thing is that someone probably has already done that 19:56
NotFound And accodding Rule 42, someone has published porn about it.
PerlJam soh_cah_toa: someone has been condemned to write COBOL in hell for all eternity? 19:57
:-)
I think I know that guy
soh_cah_toa haha. no i meant writing a cobol code generator in lisp
NotFound Surely there are emacs macros for that. 19:58
soh_cah_toa wow, i just did a google search and there is one: cobolforgcc.sourceforge.net/
NotFound "We hope to have a basic subset of COBOL functional by June 2008." 20:00
I'm impressed ;)
They are going to do it in backwards time.
soh_cah_toa maybe time runs bakwards in hell 20:01
NotFound And that after saying they switched from C because of productivity concerns...
Maybe the time will have been better employed in leraning C }:) 20:02
learning
soh_cah_toa as much as i hate lisp, i have head that it is good for language design 20:04
*heard
NotFound Sometimes I'm tempted to learn lisp just to be able to criticise it, but I resist temptation. 20:05
I read about some esotheric language instead. 20:06
20:07 mj41 left
soh_cah_toa i've tried on a few occations. it's those parenthesis that's a killer 20:07
*occasions
PerlJam soh_cah_toa: you've seen Larry Wall's take on lisp syntax, yes?
20:07 bbatha joined
soh_cah_toa nopaste, but based on his opinions of many other things, i would love to find out :) 20:08
what? i never said nopaste
PerlJam soh_cah_toa: "Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in" 20:09
soh_cah_toa ha! that a good analogy. parenthesis == fingernail clippings
whiteknight I've heard similar things said about perl
NotFound Line noise in modems is the usual comparaison. 20:10
20:10 perlite left
benabik soh_cah_toa: "nopaste" was probably due to "no<tab>" 20:10
NotFound It was. Younger people never have seen that. 20:11
soh_cah_toa benabik: yeah, i just discoverd a cool feature of xchat
benabik soh_cah_toa: Fairly standard feature for IRC clients. :)
NotFound What an idea for a stupid language: tab completion at compile time. 20:12
soh_cah_toa oddly enough, that's usually how i discover neat shortcuts - by accident. for instance, the new firefox 4 has a quick search by typing /
20:12 perlite joined
tcurtis soh_cah_toa: I believe Firefox has had that for a while. 20:12
soh_cah_toa sheesh
PerlJam since before it was called firefox. 20:13
cotto_work soh_cah_toa: if you enable typeahead find, you don't need the /
benabik NotFound: I dislike discovering things that make me "old". I'm only in grad school, but I'm surrounded by people that don't remember the pain of downloading games on a 300 Baud modem.
NotFound Many people learn the controls of games that way. They press random keys and see what happens.
soh_cah_toa kinda like typing your name in vim insert mode
benabik Some people never learn the controls and just keep playing that way.
NotFound True 20:14
They are games, after all. The bad part is when they learn programming languages the same way.
soh_cah_toa anyway, how do i properly add code to src/pmc.c? the commends say headerizer will remove changes 20:18
*comments
NotFound soh_cah_toa: it removes changes in the headerizer generated block. 20:19
soh_cah_toa: you edit the file. Then you run headerizer and it modifies the file again. 20:20
soh_cah_toa i see. fuction definitions go at the end. running headerizer adds the prototype between the headerizer blocks
20:20 dodathome left
NotFound If you add a function, headerizer adds the declaration of the new function to the appropiate header file. 20:20
benabik NotFound: Replace random buttons with copy/paste from script archives and you've got how too many people learned perl. 20:21
whiteknight I have a very hard time reading any perl, including "good" perl from adept perl coders
NotFound benabik: it's the same process: try something and see what happens.
cotto_work whiteknight: I feel the same about bf. 20:22
whiteknight cotto_work: that's different, bf is designed to evoke those feelings
benabik NotFound: It's all fun and games until someone brings down a server?
NotFound I like better intercal.
benabik: no, it's all fun and games until you must debug the program. 20:23
benabik lol'd
soh_cah_toa NotFound: not w/ my new debugger. it WILL be fun and games!
benabik soh_cah_toa: "You are in a maze of twisty PMCs, all alike. You are likely to be eaten by a dynop."
NotFound N 20:25
soh_cah_toa not a chance
benabik NotFound: "You advance the state of the interpreter one step. You are in a maze of twisty PMCs, mostly alike." ;-) 20:26
NotFound I use fairy dust.
soh_cah_toa you must be level 8 to do that, sorry 20:27
NotFound This is starting to sound like a Java enterprisey IDE to me. 20:28
20:28 whiteknight left
NotFound Written in Cobol. 20:28
benabik Is that your new catchphrase? 20:29
soh_cah_toa would you believe that the community college near me teaches cobol first semester?
NotFound Just for today, let's hope.
benabik GAH.
There's a GSoC project idea: A Cobol HLL. 20:30
soh_cah_toa and fortran, no lie
and that's exactly why i went out of county college
benabik Are their machines old enough that that's all they can run? I've seen schools like that.
NotFound soh_cah_toa: I'm beyond any level of incredulity in the matter of Cobol and of college plans.
20:31 Coke joined
soh_cah_toa really? 20:32
benabik www.cobolstandards.com/ - COBOL does Objects and Aspects now? Why are they still updating ISO COBOL? Why? The humanity! 20:33
cotto_work It's a marketable skill. 20:34
I wouldn't want it, but it's there.
NotFound The funny thing is that I make jokes about people using old languages and I've written a Z80 assembler and a line-number oriented basic interprter.
soh_cah_toa wow 20:35
benabik Dijkstra: "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."
soh_cah_toa i've read that somewhere before 20:36
20:36 Andy_ left
soh_cah_toa who said that? i think i read it quoted in some programming book before 20:37
benabik Dijkstra.
NotFound Surely there wasn't a book teaching Cobol.
soh_cah_toa oh yeah
he's the guy who hates goto
NotFound: no, it was on assembly 20:38
NotFound "The next COBOL standard is well on its way. The initial draft will be circulated internationally for comments by the summer of 2005. Publication of the approved standard is scheduled for 2008." 20:39
It looks like a common theme.
benabik Kinda like C++0xA 20:41
(I decided that the x meant hex instead of being a placeholder for a digit.)
NotFound And the "Future meeting schedule" page is hilarious.
benabik Wow. Better book flights now so you don't miss them. 20:42
soh_cah_toa c++0x is supposed to be published sometimet his year
benabik soh_cah_toa: Yup, hence me calling it 0xA
tcurtis benabik: 0xB, shouldn't it be, then? 20:43
benabik D'oh.
benabik-- # Inability to count 20:44
NotFound There are three kinds of people... 20:45
tcurtis I suppose if you use C/C++ integer literal syntax for the year, then you needed to switch over to hexadecimal in 2008.
NotFound I'm going to write a paper about objects and aspects in whitespace. 20:48
benabik Ow.
cotto_work NotFound:
NotFound Of course, all pages will be intentionally left blank. 20:49
lucian
NotFound Unfortunately, publishers are not yet ready for that kind of advanced topics: www.oreillymaker.com/link/40627/obj...hitespace/ 20:58
21:02 Khisanth left 21:05 lucian left 21:12 mj41 joined 21:14 theory joined 21:25 Khisanth joined
dalek nxed: r940 | NotFound++ | trunk/winxed.winxed:
fix some features forgotten to adapt in the switch to load_bytecode stages in
21:25
cotto_work NotFound: what part of Spain are you in? 21:29
NotFound cotto_work: Galicia 21:30
21:39 ambs left 21:46 Eduardow left 21:59 Eduardow joined
dukeleto ~~ 22:35
22:35 bubaflub left
cotto_work hi dukeleto 22:36
dukeleto cotto_work: how goes it? 22:43
cotto_work: i read your M0 status update. Things are progressing.
cotto_work brain sleepy 22:44
dukeleto who knows how to update our website? 22:45
cotto_work parrot.org?
dukeleto yep
we have a 404 for www.parrot.org/files/parrot_cla.pdf
cotto_work sigh
dukeleto and the OSL peeps tell me the new URL is www.parrot.org/files/sites/www.par...ot_cla.pdf
seems to have changed after the Drupal upgrade
and has been broken since the Drupal upgrade
seems like Drupal changed how files map to URLs 22:46
cotto_work: oops
cotto_work: it seems to have been fixed. I think Coke++ fixed it a while ago, now that I remember 22:47
cotto_work dukeleto: ok
dukeleto cotto_work: the OSL ticket never got closed, so they just pinged me
cotto_work: so now we can put this issue to rest
cotto_work I was literally just about to enable the redirect.
dukeleto cotto_work: dukeleto-- 22:48
cotto_work: i should have checked before blathering about it
cotto_work dukeleto: the original link is 404, but so is the new one you pasted
dukeleto cotto_work: hmmm
cotto_work: well, parrot.org/foundation has the correct link
cotto_work: we need to have a "site spider" that checks our site for 404's and such 22:49
dukeleto adds that to the nice-to-have pile, which is threatening to topple over and crush him
cotto_work works now 22:50
22:57 mj41 left 23:02 dmalcolm left 23:03 whiteknight joined 23:05 kid51 joined
whiteknight would anybody object if I merged in the imcc_compreg_pmc branch tonight? 23:15
...keeping in mind that an objection will be responded to with obscenities 23:16
benabik How dare you merge that! IMCC is perfect just the way it is!
cotto_work whiteknight: It's been too quiet. Merge away. 23:17
Ideally before testing.
whiteknight benabik: #$%@#! 23:19
dukeleto whiteknight: please merge
whiteknight awesome
dukeleto whiteknight: i am sick of being the only person breaking master lately ;)
whiteknight there are actually no conflicts. I'm building the merged result now
sometimes git amazes me 23:20
dukeleto thinks back to the SVN days and how much less whiteknight uses the word "merge" and profanity together, these days
whiteknight seriously, I need to find new things to curse about
If I don't use it, I'm afraid I'll lose it
dukeleto whiteknight: feel free to read the source of PL/Parrot. It is sure to offend even the most resilient sensibilities 23:21
cotto_work whiteknight: what were your concerns about parrot-instrument's design?
whiteknight cotto_work: the way it is half written in .pmc, and half in .nqp, and how it's calling methods back and forth 23:22
cotto_work: also, some of the linked-listy things that it's doing to store events look brittle
t/perl/Parrot_Test.t is failing in the branch, and neither myself nor kid51 could figure out why 23:24
I'm prepared to ignore it for the purposes of the merge. 23:25
dukeleto whiteknight: go for it. 23:28
whiteknight gone
dalek rrot: 1842a6e | Whiteknight++ | / (81 files):
Merge branch 'whiteknight/imcc_compreg_pmc'
cotto_work 'bout time we had some action 23:29
dukeleto whiteknight++
cotto_work whiteknight++
dukeleto whiteknight: i've never looked at that test file before, somehow
whiteknight I hope to never look at it again
dukeleto whiteknight: that is a massive merge. It would have been soul-crushing to do with svn-- 23:30
cotto_work That's a special file.
something something svn--
whiteknight dukeleto: yes, it is my master opus
brb. munchkin needs a bath 23:32
kid51 whiteknight: Did you delete that test in t/perl/Parrot_Test.t 23:36
?
dukeleto kid51: i think he just merged the branch, with the test failing 23:37
kid51: i opined that it was worth merging regardless of the failing test
kid51: is there a TT for that failing test?
dukeleto grabs the latest codez to see what blows up 23:38
kid51 No. For the majority of us, it always passed. From time to time, whiteknight reported it failing. But until *this branch*, no one else (or, at least, me) could ever reproduce it
cotto_work still looks fine for me 23:40
dukeleto smokes a c++ build 23:42
kid51 Let me state that I had no personal investment in, or previous knowledge of, that failing test. 23:43
I merely reported its failure.
But if it's now failing in master than it will have to be TODOed and a TT opened.
cotto_work dukeleto: good thinking adding the y2038 bug to the gsoc list. That'd be an interesting one. 23:48
dukeleto cotto_work: indeed :) 23:49
kid51: it passes for me on 64bit linux and g++
kid51: it may be specific to a certain version of perl or OS
cotto_work It makes me want to mess with my system clock.
a vm might be safer
benabik t/perl/Parrot-Test.t passes Darwin 10.7 / i386 23:50
dukeleto we should really tar and feather the dude that broke t/src/extend_vtable.t . Oh, wait...
23:51 darbelo left, bbatha left