Camelia, the Perl 6 bug

IRC log for #parrot, 2011-07-14

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 bubaflub jay: you can always just be a polyglot
00:01 jay can I write inline wixed like I did with the Q:PIR?
00:01 jay <winxed>
00:01 bubaflub jay: no, the entire file would have to be Winxed
00:01 jay ok
00:01 bubaflub jay: if you are changing some existing NQP, it might be best just to stick wtih it
00:01 bubaflub *with
00:04 jay Argh.  Have to go for now, back later.  Are there docs for Winxed?  I'm having trouble even finding how to create the FixedFloatArray from NQP.  I hate to ask every little thing.  Are there good NQP docs or should I start looking at the source?
00:05 whiteknight whiteknight.github.com/Rosella/winxed/index.html
00:05 whiteknight it's not complete, but better than nothing
00:09 lucian left #parrot
00:12 Felipe hm? I haven't permission to create ticket at Trac
00:12 bluescreen left #parrot
00:14 Felipe aren't bugs intended to be filed in the Trac instead of the old rt one?
00:14 cotto_work Felipe: just a sec
00:14 whiteknight yeah, but we were having bad spam problems
00:14 Felipe k
00:14 Felipe ah :(
00:14 whiteknight cotto_work: we should open that up again
00:14 cotto_work Felipe: now you do
00:14 cotto_work whiteknight: we can try.
00:15 lichtkind_ joined #parrot
00:15 bubaflub whiteknight: got a moment for an NCI question?
00:16 whiteknight cotto_work: I think I just added TICKET_CREATE and TICKET_MODIFY permissions for all users
00:16 whiteknight let's try that, see how it works
00:16 whiteknight bubaflub: NO MOMENTS!
00:16 whiteknight bubaflub: actually, I have all the time in the world. What do you need?
00:16 bubaflub whiteknight: ENOMOMENTS
00:16 cotto_work whiteknight: go for it.  If we get more than a couple trac spam messages per day, we can lock it down again.
00:17 lichtkind left #parrot
00:17 bubaflub whiteknight: i'm working on my NCI thunks and i need to generate some specific for my projects - are the only thunks included with Parrot located in src/nci/core_thunks.nci and src/nci/extra_thunks.nci ?
00:18 whiteknight yeah, those are the two files that are used in parrot
00:18 bubaflub whiteknight: great.  i plan on writing a script that'll read my project's NCI definition file, and then those two, and then spit out a definition file of any thunks that my project needs but aren't included in parrot
00:18 bubaflub dukeleto's project and jay's project could probably use it
00:19 whiteknight bubaflub: that sounds awesome
00:19 whiteknight bubaflub: I think there is a way to get a list of available thunks from parrot
00:20 bubaflub seen plobsing
00:20 aloha plobsing was last seen in #parrot 1 hours 49 mins ago joining the channel.
00:20 bubaflub nuts, must have just missed him
00:21 whiteknight there is an IGLOBALS_NCI_FUNCS object
00:21 whiteknight .include 'iglobals.pasm'
00:21 whiteknight $P0 = getinterp
00:21 whiteknight $P1 = $P0["globals"]
00:21 whiteknight $P2 = $P1[.IGLOBALS_NCI_FUNCS]
00:22 whiteknight I *think* that should contain what you want
00:22 woosley joined #parrot
00:23 lichtkind_ left #parrot
00:24 whiteknight hmmm...maybe not
00:25 bubaflub whiteknight: nah.  i'm seeing there is HAS_EXTRA_NCI_THUNKS
00:25 bubaflub also, i'm seeing our config hash has alot of both lowercase and uppercase versions of the same information
00:26 dukeleto bubaflub: that script sounds useful.
00:27 lichtkind joined #parrot
00:28 woosley left #parrot
00:28 bubaflub dukeleto: i should have something by the end of tonight
00:29 dukeleto i sure am good at making irc clients duel each other
00:32 whiteknight heh. I just found a 1-line segfault
00:32 whiteknight awesome
00:32 whiteknight 2-line
00:32 whiteknight winxed: function main[main]() { typeof(getinterp()[4]); }
00:34 particle left #parrot
00:34 cotto_work They're getting rarer.
00:34 bubaflub whiteknight: i'm not segfaulting on that Winxed (nor on the generated PIR);
00:34 whiteknight bubaflub: do you have libffi installeD?
00:34 bubaflub whiteknight: yep
00:34 whiteknight I suspect that value is NULL in some situations, not PMCNULL
00:34 whiteknight I'm putting a patch together now
00:35 bubaflub i printed out the value, i'm getting an UnManagedStruct
00:35 cotto_work whiteknight: why does that segfault for you?
00:36 whiteknight I don't know. I'm looking into it
00:38 whiteknight it's definitely segfaulting though. I'm doing a gitpull
00:40 theory left #parrot
00:41 particle joined #parrot
00:43 dalek parrot: 929a061 | Whiteknight++ | src/pmc/parrotinterpreter.pmc:
00:43 dalek parrot: Fix rare segfault situations where there is a NULL in the iGlobals array, instead of a PMCNULL
00:43 dalek parrot: review: https://github.com/parrot/parrot/commit/929a0615d7
00:44 rurban_ joined #parrot
00:46 dalek TT #2151 created by Felipe++: Memory leak on imcc_compile_buffer_safe() function
00:46 dalek TT #2151: http://trac.parrot.org/parrot/ticket/2151
00:46 rurban left #parrot
00:47 rurban_ is now known as rurban
00:48 bubaflub Felipe++ - nice patch on the ticket
00:49 whiteknight Felipe++ indeed. I wrote that function, so now I'm embarrassed
00:58 whiteknight msg kid51: I think I updated trac to allow all users to create tickets again. If we see lots of spam again, we can shut that off. It's an experiment
00:58 aloha OK. I'll deliver the message.
00:59 whiteknight I'm going to bed now. Talk to you guys later
01:00 whiteknight left #parrot
01:02 dalek parrot-gmp: d039693 | bubaflub++ | / (2 files):
01:02 dalek parrot-gmp: NCI thunk stuff:
01:02 dalek parrot-gmp:
01:02 dalek parrot-gmp: bin/ncithunker.pl script to generate src/GMP/thunks.nci
01:02 dalek parrot-gmp: the script reads Parrot's available thunks and my NCI definition and then
01:02 dalek parrot-gmp: outputs which thunks I need in the proper format
01:02 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/d0396939ae
01:05 Felipe :)
01:06 bubaflub Felipe: if you are familiar with Github, you can also send pull requests
01:08 Felipe okay, thanks
01:11 lichtkind left #parrot
01:12 Felipe The regenerated imclexer.c must be committed too
01:15 cotto_work Felipe: Yes.  Run Configure.pl with --maintainer to get the right magic set up so that those files get re-generated.
01:16 Felipe ah cool
01:16 daniel-s joined #parrot
01:18 rurban left #parrot
01:20 cotto_work whiteknight++ for the fix
01:20 wagle left #parrot
01:21 wagle joined #parrot
01:26 bubaflub cotto_work: could you help me with this C error? https://gist.github.com/1081697
01:26 daniel-s left #parrot
01:31 bubaflub also, dukeleto: check out my strange C error trying to compile an NCI thunk: https://gist.github.com/1081697
01:35 cotto_work bubaflub: I have to take off in a few minutes, unfortunately.  I'll look at it later this evening if needed.  Where does the project live, and is the code to reproduce that pushed?
01:36 bubaflub cotto_work: github.com/bubaflub/parrot-gmp, it's not pushed yet.   i can push it to a branch
01:40 jay Fixed vs Resizable issue... "init_pmc() not implemented in class 'FixedFloatArray'?  Easy example, https://gist.github.com/1081713
01:40 particle1 joined #parrot
01:42 cotto_work bubaflub: I'm out.  Shoot my non-work counterpart a msg if nobody's around to help.
01:44 particle left #parrot
01:51 dalek NQR: 1799696 | (Jay Emerson)++ | / (2 files):
01:51 dalek NQR: Added HELP file for my current "gotchas".
01:51 dalek NQR: review: https://github.com/NQRCore/NQR/commit/17996965ad
01:51 kid51 joined #parrot
01:53 * kid51 backscrolls
01:54 kid51 Felipe ping
01:55 Felipe kid51: pong
01:55 fahad left #parrot
01:55 kid51 Did you get your Trac ticket posted?
01:55 Felipe yes
01:55 kid51 And you spell your login with upper-case F, correct?
01:56 Felipe exact.
01:56 fahad joined #parrot
01:57 kid51 okay.  On our permissions page, your name was entered as 'felipe'.  I'm going to change it to 'Felipe' now so that it's consistent with the Users page.
01:58 kid51 So, you're now in the 'developer' user group as 'Felipe', which enables you to open and comment on tickets, comment on wiki pages, etc.
01:58 Felipe thanks!
01:59 kid51 My hunch is that the permissions page is not case-sensitive, hence, once someone (whiteknight?) made 'felipe' into a developer, you were able to open that Trac ticket.
01:59 kid51 But it's best to be consistent.
02:03 contingencyplan left #parrot
02:26 Coke TLDR.
02:37 fahad left #parrot
02:43 fahad joined #parrot
02:51 dalek TT #2152 created by jkeenan++: t/pmc/string.t, t/library/streams.t: new test failures
02:51 dalek TT #2152: http://trac.parrot.org/parrot/ticket/2152
02:51 kid51 left #parrot
03:00 bubaflub msg cotto: updated gist - the C file that i'm trying to compile and error is in this gist: https://gist.github.com/1081697
03:00 aloha OK. I'll deliver the message.
03:07 dalek TT #2153 created by Felipe++: Memory leak in compile_file functions
03:07 dalek TT #2153: http://trac.parrot.org/parrot/ticket/2153
03:12 jay ping bubaflub
03:13 bubaflub pong jay
03:13 jay So I figured something out (or re-invented it.... maybe Whiteknight hinted at it):
03:13 jay This works (NQP calling PIR):
03:13 jay my $vec := Q:PIR { %r = new ["FixedFloatArray"], 2 };
03:14 jay This works:
03:14 jay my $vec := pir::new("ResizableFloatArray");
03:14 jay This does not work:
03:14 jay my $vec := pir::new("FixedFloatArray", 2);
03:14 jay Go figure.
03:14 benabik ~~
03:15 benabik dukeleto: I did my midterm!
03:15 bubaflub jay: heh.  that's news to me
03:16 bubaflub jay: a lot of the perl6 people know a lot more about NQP than i do
03:16 jay So if I wanted to give Winxed a fair look, should I start with your code?  Is it mature enough to have docs?
03:16 jay (by "it" I meant winxed, not your code)
03:18 bubaflub jay: whiteknight has some good docs for Winxed
03:18 bubaflub jay: also NotFound wrote winxed, and he's usually around to answer a few questions
03:18 jay In spite of the name, huh?
03:19 bubaflub jay: yep
03:20 bubaflub jay: and yes, my code is Winxed.  the only piece of NQP i have is t/harness
03:20 jay Ok.  Maybe I'll spend some time on it tomorrow.  NQP has been a little frustrating.  I would guess there might be discussion of ditching it and replace it with Winxed...
03:23 bubaflub jay: ok. there is the possibility to have different languages in different files
03:23 bubaflub jay: maybe the compiler part uses NQP, some of the bindings can use Winxed, and so on
03:23 benabik msg dukeleto I completed the midterm evaluation today.  Before you reminded me, even!
03:23 aloha OK. I'll deliver the message.
03:23 jay Yes, understood.  I think I can manage that.  I was just thinking "bigger picture."  Can't code all the time... !-)
03:25 bubaflub jay: makes sense.
03:26 bubaflub Felipe++ - thanks for all the valgrind reports; that work must be tedious
03:31 dalek NQR: a64f6a8 | (Jay Emerson)++ | src/nqr/Runtime.pm:
03:31 dalek NQR: Q:PIR and pir:: obviously not the same
03:31 dalek NQR: review: https://github.com/NQRCore/NQR/commit/a64f6a8091
03:33 benabik I'm getting an odd message when building Rakudo on my branch.  "Lossy conversion to single byte encoding"  Anyone know what that could be?
03:33 dalek NQR: aa9c615 | (Jay Emerson)++ | HELP:
03:33 dalek NQR: Keep HELP up to date
03:33 dalek NQR: review: https://github.com/NQRCore/NQR/commit/aa9c61559f
03:33 bubaflub jay: what's the ultimate goal for NQR?  something close to R syntax?
03:35 jay It's not really a grammar issue, that is entirely do-able.  We'd like to create a basic, scalable version of R, leveraging past work that really identified some of the core design limitations of R.  Parrot seems like a promising platform, so this is "proof of concept" I suppose.
03:35 jay On the memory side of things, allow memory-mapped files for large data objects.  We've also messed about with shared memory and other stuff.
03:36 bubaflub jay: alright, that makes sense.
03:36 jay 64-bit indexing: freebie.  R falls flat, there, and it would require going through 20-30 years of code to save that codebase.
03:36 jay R is pretty sweet though, for most things.  But it can't scale indefinitely, and statistics problems are only getting larger.
03:37 jay R has barely added some bytecode support... you guys are huge there.
03:37 bubaflub jay: i've heard and read about R, but never had to use it; i've done Matlab/Octave type stuff though
03:37 jay R is not threadsafe.  Period end of story.
03:37 bubaflub jay: yeah, there are a lot of things you could get for free.  especially if more languages are on top of Parrot
03:37 bubaflub jay: in theory you could get free access to Python3 or JavaScript or Perl6
03:38 jay Similar to Matlab/Octave in many ways.  Yes, that is attractive.
03:38 jay Graphics will be interesting to explore...
03:38 bubaflub jay: i forgot who did a lot of the OpenGL work, but the bindings are there.  might need some updating, though
03:39 jay Matlab/Octave don't really have the extensive statistics libraries that R does... so a "home run" would need to support R extension packages.  But I figure that sort of full compatibility is close to impossible unless a lot of people jump on the bandwagon.
03:40 bubaflub jay: yeah, more just general Linear Algebra stuff is what i've worked with.  how are R extensions written?
03:41 jay In R, some with C/C++.  We think we can handle the R/C/C++ interface in Parrot, though -- we're doing a far bit of thinking, not just coding in the dark as it probably seems...
03:42 jay < fair bit >
03:42 bubaflub jay: cool.  how do the GSL bindings fit into all of this?
03:43 jay By using them I'm not directly using the R Project stuff (even though I could, perhaps, for some things).  That is an abstract plus at the moment for political reasons.
03:43 jay I know the R Project had some rather complicated license issues with some stuff that is well-buried under the hood, and I'd rather avoid any of that.
03:44 bubaflub jay: ok, that makes sense.
03:45 jay I think worrying about much of this is WAY premature at the moment.  But I can start to see how things could come together quickly.
03:45 jsut_ joined #parrot
03:46 jay Well, that's all for me tonight.  Thanks again for the help, bubaflub++
03:46 bubaflub jay: talk to you tomorrow
03:47 jay Tomorrow: GMP with Winxed, and maybe some class stuff.
03:50 jsut left #parrot
04:01 woosley joined #parrot
04:09 cotto ~
04:09 cotto ~~
04:09 cotto Hmmm.  No msg.
04:10 benabik msg cotto Have a msg.
04:10 aloha OK. I'll deliver the message.
04:14 cotto ohai
04:14 cotto worked that time
04:17 soh_cah_toa whenever somebody says "ohai" i always immediately think "can has stdio?"
04:17 soh_cah_toa :)
04:18 cotto That's a proper instinct.
04:21 bubaflub goodnight, #parrot
04:22 cotto 'night bubaflub
04:25 particle1 left #parrot
04:37 daniel-s joined #parrot
04:37 dalek nqp: abdf378 | pmichaud++ | src/ (2 files):
04:37 dalek nqp: Refactor building of match object.
04:37 dalek nqp: review: https://github.com/perl6/nqp/commit/abdf37836a
04:37 dalek nqp: 985fd7d | pmichaud++ | src/QRegex/Cursor.nqp:
04:37 dalek nqp: Cache a match object once we've built it.
04:37 dalek nqp: review: https://github.com/perl6/nqp/commit/985fd7db7d
04:45 dalek rakudo/nom: 5aecd55 | pmichaud++ | / (10 files):
04:45 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
04:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5aecd55de2
04:45 dalek rakudo/nom: d5a8c7e | pmichaud++ | / (4 files):
04:45 dalek rakudo/nom: Update Match, Cursor, and Capture objects.  Indexed access to
04:45 dalek rakudo/nom: match objects now works.
04:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d5a8c7e2a7
05:57 cotto Fun with C: http://blog.regehr.org/archives/558
06:02 particle joined #parrot
06:05 awwaiid left #parrot
06:05 awwaiid joined #parrot
06:23 soh_cah_toa left #parrot
06:36 fperrad joined #parrot
06:38 contingencyplan joined #parrot
06:55 Eclesia joined #parrot
07:08 preflex left #parrot
07:11 mj41 joined #parrot
07:11 preflex joined #parrot
07:17 writtencode left #parrot
07:40 dalek parrot/m0-spec: f359fc4 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
07:40 dalek parrot/m0-spec: add a couple experimental byte manipulation ops
07:40 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/f359fc4828
07:41 dalek parrot/m0-prototype: b5ae2ab | cotto++ | src/m0/perl5/m0_ (2 files):
07:41 dalek parrot/m0-prototype: implement the [gs]et_byte ops, though no tests yet
07:41 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/b5ae2ab732
07:42 cotto msg dukeleto I'd like to know your thoughts on the set_byte and get_byte ops I added to M0.  After talking with chromatic and thinking, this seems like it might be workable.
07:42 aloha OK. I'll deliver the message.
07:44 cotto msg dukeleto I want M0 primitive strings to be prefixed by a header with the size and encoding (2 words total).  Thoughts on how that'd fit together would be appreciated.
07:44 aloha OK. I'll deliver the message.
07:44 * cotto sleeps
08:29 fperrad_ joined #parrot
08:33 fperrad left #parrot
08:33 fperrad_ is now known as fperrad
08:34 Drossel joined #parrot
08:37 Kulag left #parrot
08:52 dodathome joined #parrot
08:52 Drossel left #parrot
08:52 Kulag joined #parrot
08:57 dalek rakudo/nom: 88f4119 | moritz++ | src/Perl6/Actions.pm:
08:57 dalek rakudo/nom: fix $0, $1 etc.
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/88f4119371
09:04 Drossel joined #parrot
09:04 Kulag left #parrot
09:19 contingencyplan left #parrot
09:27 dalek rakudo/nom: 45c0697 | moritz++ | t/spectest.data:
09:27 dalek rakudo/nom: 6 more passing test files
09:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/45c0697a9d
09:55 preflex left #parrot
09:57 preflex joined #parrot
10:09 woosley left #parrot
10:21 lucian joined #parrot
10:24 JimmyZ joined #parrot
10:33 Felipe good morning
10:38 preflex left #parrot
10:40 preflex joined #parrot
10:41 Eclesia left #parrot
10:46 JimmyZ left #parrot
10:49 ambs joined #parrot
11:01 dalek rakudo/nom: 064bcc4 | jonathan++ | src/Perl6/ (2 files):
11:01 dalek rakudo/nom: Flesh out actions a bit for enumerations. Very much a first cut - only handles a few simple cases.
11:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/064bcc415b
11:01 dalek rakudo/nom: fed99c4 | jonathan++ | src/Perl6/Metamodel/BaseType.pm:
11:01 dalek rakudo/nom: Need .^parents in BaseType role.
11:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fed99c40ba
11:01 dalek rakudo/nom: 74c67f8 | jonathan++ | src/core/Enumeration.pm:
11:01 dalek rakudo/nom: Sketch out a few bits in the Enumeration role.
11:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74c67f86fc
11:01 dalek rakudo/nom: 9c760e1 | jonathan++ | src/Perl6/Metamodel/EnumHOW.pm:
11:01 dalek rakudo/nom: Create enumeration values at enum compose times, and include the key.
11:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c760e1c3f
11:02 Themeruta joined #parrot
11:02 Themeruta is now known as NotFound_b
11:02 NotFound_b cotto: ping
11:05 NotFound_b msg cotto Looks like there is a mistake in https://github.com/parrot/parrot/commit/​2b98378eb98fcf62c16b73579dfef4ceafde8c87 - It changed t/library/perlhist.txt
11:05 aloha OK. I'll deliver the message.
11:05 NotFound_b left #parrot
11:17 dalek rakudo/nom: ef31cef | tadzik++ | src/core/operators.pm:
11:17 dalek rakudo/nom: Make n/1 Rats be Ints in sequence generation
11:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ef31ceff9b
11:45 ambs left #parrot
11:46 kid51 joined #parrot
11:56 ambs joined #parrot
12:15 JimmyZ joined #parrot
12:18 bluescreen joined #parrot
12:27 dalek rakudo/nom-num: f7e4cec | moritz++ | src/Perl6/Actions.pm:
12:27 dalek rakudo/nom-num: (re-)introduce radcalc, but smarter than before
12:27 dalek rakudo/nom-num: review: https://github.com/rakudo/rakudo/commit/f7e4cecfbf
12:27 dalek rakudo/nom-num: 64fe676 | moritz++ | src/Perl6/Actions.pm:
12:27 dalek rakudo/nom-num: allow arbirary number of trailing zeros. Wins back the few tests that the previous commit regressed
12:27 dalek rakudo/nom-num: review: https://github.com/rakudo/rakudo/commit/64fe6768a7
12:27 dalek rakudo/nom-num: 8097419 | moritz++ | src/Perl6/Actions.pm:
12:27 dalek rakudo/nom-num: hopefully speed up stripping of trailing zeros
12:27 dalek rakudo/nom-num: review: https://github.com/rakudo/rakudo/commit/80974191c5
12:28 dalek rakudo/nom-num: 09a43b7 | moritz++ | src/Perl6/Actions.pm:
12:28 dalek rakudo/nom-num: remove (mostly PIR) functions that are now mostly unused
12:28 dalek rakudo/nom-num: review: https://github.com/rakudo/rakudo/commit/09a43b7f1f
12:28 dalek rakudo/nom-num: e939a8b | moritz++ | src/Perl6/Actions.pm:
12:28 dalek rakudo/nom-num: get :16<DEAD_BEEF> style literals working
12:28 dalek rakudo/nom-num: review: https://github.com/rakudo/rakudo/commit/e939a8bee9
12:29 kid51 left #parrot
12:35 whiteknight joined #parrot
12:35 jay Good morning, whiteknight.
12:36 jay How are things with your new mouse?
12:43 bubaflub ~
12:43 whiteknight good morning jay
12:44 jay and also you, bubaflub
12:44 whiteknight jay: They're better than I could have possibly imagined. Compared to the pain I was living with, the new mouse is like heaven with a little laser on the bottom
12:44 bubaflub whiteknight: who could ask for more
12:44 bubaflub morning jay
12:44 whiteknight I can move my cursor to where I want it moved, I don't have to worry that a simple touch of the mouse is going to trigger a million weird gesture shortcuts, it's wonderful
12:44 Felipe morning guys
12:44 whiteknight good morning Felipe
12:45 smash joined #parrot
12:45 smash hello everyone
12:45 Felipe hello
12:52 jay bubaflub... Integer.winxed defines class Integer within namespace GMP?  The var ptr; is probably what the underlying pmc object gets, just a pointer to this structure.  You define all the attributes (functions), because it isn't a subclass inheriting anything.  The "using" gives you access to one of those functions previously dynloaded in raw.pir and available in GMP.Raw?
12:52 bubaflub jay: 1) yes, i put a class Integer into the GMP namespace so you can have a GMP::Integer
12:53 bubaflub jay: 2) yes, the var ptr just holds a pointer to the struct.
12:53 bubaflub jay: 3) the using statement i'm not 100% clear about, but it pulls in functions from raw.pir (which is put into a namespace GMP::Raw)
12:54 jay Ok.  I could see getting to like Winxed.  Having explicit types seems safer than what Perl* lets us get away with.
12:55 bubaflub jay: the types in Winxed are a wrapper around Parrot types, but you can see how in my Winxed GMP::Integer functions I can do some basic type checking - make sure that var is actually a GMP::Integer.
12:56 jay bubaflub's indentation is impeccable, he has helpful incode comments, and he's impressively organized.  Any confusion is my fault.  I recommend giving him an "A" on his midterm exam.  Er... you did have one, didn't you?
12:57 bubaflub jay: haha, yes i did have a midterm for GSoC.
12:57 moritz jay: the midterm evaluations are mostly just pass/fail
12:57 bubaflub jay: that code is generated, which helps with the indentation.
12:57 jay < sshhh >  I know that, but you don't have to tell everyone.
12:58 moritz ok :-)
12:59 jay Code generating code... < wistful sigh >  takes me back about a decade when I did a short 3-year stint as a systems administrator.  Mostly Linux and Solaris, with some Microsoft suffering on the side.
12:59 dalek parrot: 8c150e2 | bubaflub++ | t/library/perlhist.txt:
12:59 dalek parrot: fix test file that got clobbered in 2b98378, NotFound++
12:59 dalek parrot:
12:59 dalek parrot: this fixes t/library/streams.t and t/examples/library.t
12:59 dalek parrot: review: https://github.com/parrot/parrot/commit/8c150e26c3
13:01 bubaflub msg kid51 8c150e2 fixes the two new errors you noticed
13:01 aloha OK. I'll deliver the message.
13:04 NotFound_b joined #parrot
13:07 NotFound_b bubaflub: using namespace makes anything in the target namespace available from the current scope: functions, classes and constants.
13:10 bubaflub NotFound_b: ah, so i could just do "using namespace GMP.Raw;" instead of lots of little "using GMP.Raw.blahblah;"?
13:11 whiteknight NotFound_b: How does that work, it does a runtime search?
13:12 whiteknight And if I do "using Foo; using Bar", and I call "baz()", how does it know where to find the function?
13:12 autark left #parrot
13:12 NotFound_b No, using namespace is strictly compile time. The namespace declaring that things must be in the current compilation unit.
13:12 autark joined #parrot
13:12 whiteknight oh, okay. So we still need a forward declaration?
13:12 NotFound_b But now that we have $include is less of a problem.
13:12 whiteknight $include works with whole winxed files?
13:13 jay bubaflub:  could there be a single "using namespace GMP.Raw" without having a "using" inside every one of the functions?
13:13 whiteknight It looks like I have a lot of catching up to do
13:13 jay Or is that what this $include would do?  Haven't seen that yet.
13:14 NotFound_b whiteknight: yes, I've been lazy and don't use a specialized parser for includes. But you should put on them only const and extern declarations to be safe.
13:14 GodFather joined #parrot
13:15 NotFound_b jay: no one uses it yet, being added this week.
13:15 bubaflub NotFound_b: so you're saying my two options are 1) $include my file and then using namespace GMP.Raw; or 2) just using it regularly (load_bytecode) and have a bunch of using GMP.Raw.blah; statements
13:15 jay lol  ok, I'll sit tight until you guys tell me to jump.  I'll copy bubaflub for now.
13:17 NotFound_b bubaflub: no, the idea is that you can create an include file for your module with extrnal declarations for the things it provides.
13:19 whiteknight like a .h file
13:20 whiteknight I think I'm going to be providing something like that for Rosella soon
13:21 NotFound_b I'm going to commit to WinxedGtk soon, as example of use.
13:21 NotFound_b left #parrot
13:22 NotFound_b joined #parrot
13:22 NotFound_b Also, you can put a $load for the library in the include file, but I'm not sure if that is going to be a supported practice.
13:24 whiteknight what do you mean, not supported?
13:24 whiteknight I was thinking that sounded like a perfect solution
13:25 NotFound_b Allowing it if some day a restricted parser for includes is added.
13:25 whiteknight why do you think it would be restricted?
13:25 Eclesia joined #parrot
13:25 Eclesia hi
13:26 NotFound_b whiteknight: if people start using it, users of the libraries lost tha ability to decide at what point the bytecode is loaded.
13:26 whiteknight Okay, that makes sense
13:28 NotFound_b Without it, users can put its own $load, or use load_bytecode where appropiate.
13:31 rblackwe Quick ad for PPW.  We seem to be lacking parrot/rakudo/... talks anyone interested in helping fix that? ... http://pghpw.org/ppw2011/newtalk
13:31 whiteknight Rosella is going to use that feature internally, to automatically include prerequisite libraries
13:33 Coke left #parrot
13:33 NotFound_b Internal usage is fine.
13:34 Coke joined #parrot
13:34 Eclesia If my project can serve as an exemple (on dependency management) : I intend to pack *pbc files in a zip. each zip is what I call a 'module' which at end can be loaded or unloaded on the fly.   Eria will only work with modules, a single file won't work alone. each module we have somekind of metadata associated saying 'I need this module or another' and the module system takes care to call all the load_libraries necessary.
13:38 NotFound_b Eclesia: interesting, but winxed is a lower level beast, must be close to the parrot core level.
13:39 Eclesia NotFound_b: I was just an example :) . so that you don't remove the load_lib code
13:39 Eclesia I'm also wondering, is there a function to unload ?
13:40 NotFound_b Eclesia: no. Some day the garbage collector will remove the modules no more in use.
13:41 NotFound_b Currently implementation details don't allow that.
13:41 whiteknight msg dukeleto I sent out reminder emails to GSOC  mentors and students who haven't filled out reviews yet. Deadline is tomorrow so I am planning to pester
13:41 aloha OK. I'll deliver the message.
13:42 Eclesia NotFound_b: what will happen If I load a class. then load another class with the same name and same namespace (a differnt version for example) ?
13:42 NotFound_b Eclesia: nothing good
13:43 Eclesia parrot does not have a concept of 'classloader' ?
13:43 Eclesia to avoid such conflicts ?
13:43 Coke left #parrot
13:44 Coke joined #parrot
13:44 moritz a class loader wouldn't be enough
13:44 Felipe whiteknight: have you seen my pull request?
13:44 moritz parrot has a global registry for namespaces
13:44 NotFound_b Eclesia: there is a close bind between classes and its associated namespaces right now. That may change in the future when object model is changed to 6model or something like that.
13:45 moritz allowing everybody to read and write there means you can't import different versions of the same class (if that write to the namespaces)
13:45 moritz ... unless the author of that class took care of uniqueifying the namespace name based on the version, or something
13:46 moritz or shoving it into a different HLL or so
13:46 Eclesia hm.. so I could add version number a on moment in the namespace
13:46 moritz but since parrot allows the loaded modules so much freedom, it also can't guarantuee much
13:47 moritz if you are the author of the modules, yes
13:47 NotFound_b WinxedGtk using $include: https://github.com/NotFound/WinxedGtk/commi​t/6e298c7fb8066281a8b098eb2ab9ec9659e2cef4
13:47 jay Winxed question:  var foo = [1.1,2.2];   Now, I want to pass the pointer to the data to a C function, like gsl_stats_mean(foo, 1, 2). May not be quite right... hints?  I get an answer, but a junky answer.
13:47 NotFound_b jay: this is a PMC array, not a float array.
13:48 NotFound_b jay: you can use: float foo[] = [ 1.1, 2.2 ];
13:48 jay Ok, I'll try that.
13:49 jay Bingo!  NotFound_b++
13:50 dalek rakudo/nom-num: 01df600 | moritz++ | src/Perl6/ (2 files):
13:50 dalek rakudo/nom-num: refactor numeric constants to do the PAST::Want magic in a single place
13:50 dalek rakudo/nom-num: review: https://github.com/rakudo/rakudo/commit/01df600ad2
13:51 NotFound_b jay: you can also use: float foo[2] = [ 1.1, 2.2 ]; if you want a fixed size array.
13:52 jay And would    float foo[2]; simply declare an empty fixed size array of length 2?
13:52 NotFound_b jay: yes
13:52 whiteknight oh wow, I wasn't aware of that syntax
13:53 whiteknight NotFound++
13:53 mtk joined #parrot
13:53 NotFound_b Well, not empty, just uninitialized.
13:54 whiteknight NotFound: I'm going to need to update all my documentation!
13:55 jay I now have 4 working versions of a dumb little function using something from GSL: Winxed, and 3 versions with various combinations of PIR and NQP.  A substantial building block.
13:55 whiteknight that's good, right? Having options is good
13:55 jay YES!  Good for understanding, too.
13:55 NotFound_b Note that foo is not granted to keep its type. That declarations really declare a var, the syntax just generates a runtime initialization.
13:56 jay In NQP, why isn't pir:: simply a one-line Q:PIR { }?
13:57 Eclesia GSL is in parrot ?
13:57 Eclesia or did you made bindings ?
13:57 moritz jay: because that way it's easier to get arguments
13:57 whiteknight jay: nicer syntax, coercion of data types, automatic allocation of registers, etc
13:57 jay Eclesia: well, I'm working on both using it and working on the bindings.
13:57 moritz jay: you can write: my $x := 'foo'; pir::upcase($x)
13:58 jay moritz, I'll try that... would give me a 5th example of this same function.
13:58 NotFound_b jay: tip: if you want a quick look of the pir generated for a winxed snippet you can use: winxed -c -o - -e 'some winxed code'
13:58 moritz instead of Q:PIR { $P0 = find_lex '$x' \n %r = upcase $P0 }
13:59 jay moritz, I was only trying:    my $vec := pir::new("FixedFloatArray", 2);   which didn't work, while it did for ResizableFloatArray (without the ,2 of course).
14:00 jay It's a minor thing, but confusing for a guy like me.
14:00 whiteknight my $vec := pir::new__psi("FixedFloatArray", 2);
14:00 whiteknight if the op can't figure out the types of operands to use, you have to specify
14:00 moritz jay: I think you need   pir::new("FixedFloatArray");  pir::set__Pi(2)   or something
14:00 NotFound_b jay: for speed reasons some PMC have a init_int variant, other doesn't.
14:01 moritz iirc the fixed*arrays have an API where you use the set_integer vtable for determining the size
14:01 jay < taking notes, will try all these >
14:01 NotFound_b I think FixedFloatArray lacks init_int
14:01 moritz ah, I only tried it with FixedStringArray
14:02 moritz and assumed they all followed the same API
14:02 NotFound_b Uh.... no, it works from winxed.
14:02 moritz maybe that was foolish :-)
14:02 jay I'll keep each of these (working or not) together for future reference.  Might help someone.  Maybe I should start blogging.
14:02 NotFound_b Ah, yeah, it lacks init_pmc, and that what is nqp is probably generating.
14:03 whiteknight jay: We love blogging!
14:04 jay Where is the right place to start blogging for stuff like this?
14:04 JimmyZ nqr.github.com
14:05 JimmyZ or nqr.wordpress.com ?
14:05 whiteknight jay: You can open a blog on parrot.org if you don't have infrastructure of your own already set up
14:05 whiteknight That's what several of our GSOC students are doing now
14:12 NotFound_b whiteknight: Have you seen the new way of handling builtins? winxed -e 'var say = function(string s){Winxed_Builtins.say("Local say: ", s); }; say("Hi");'
14:12 whiteknight no, what's that about?
14:12 whiteknight I can't just "say('Hello')" anymore?
14:13 NotFound_b whiteknight: you can, but you can also redefine them locally.
14:13 whiteknight oh, okay. Cool
14:13 whiteknight Is Winxed_Builtins a namespace?
14:13 NotFound_b whiteknight: yes, automatically created and using it in the root namespace.
14:13 moritz can you do  var Winxed_Builtins = custom_object_with_builtins ?
14:14 NotFound_b moritz: not yet, but that feature is a start in that direction.
14:14 NotFound_b Oh, you mean at runtime... yes, it probably works.
14:15 jay whiteknight: I have an account on parrot.org, and see bubaflub's blog entries, for example... but don't see how to create my own?  Is it on parrotblog.org?
14:15 whiteknight The ability to specify custom builtins, especially as a loadable library, would be awesome
14:15 whiteknight jay: We may need to give you blogging permissions
14:15 jay Ah.  Username jayemerson
14:15 whiteknight jay: What's your parrot.org username? I can add you
14:16 jay ^^
14:16 jay jayemerson
14:18 woosley joined #parrot
14:18 dmalcolm joined #parrot
14:19 whiteknight jay: done
14:19 NotFound_b moritz: well, it may work but it will not override the non namespaced usage, wich is resolved at compile time.
14:19 whiteknight reload the page and see if you have any fun new toys
14:19 jay ooo...  whiteknight++ thanks
14:19 whiteknight awesome. Let me know if you have any questions
14:19 GodFather left #parrot
14:22 dalek website: jayemerson++ | The NQR and GSL Projects
14:22 dalek website: http://www.parrot.org/content/nqr-and-gsl-projects
14:22 NotFound_b The scope search when using and using namespace at different levels are involved can be as confusing or more than C++ ones. But most usages are easy to understand (I hope).
14:22 jay Oh boy.  My karma is going spat, to three places now.
14:23 whiteknight :)
14:23 jay However, the blog working is far more interesting.  I'm secure in my karmahood.
14:23 whiteknight karma jay
14:23 aloha jay has karma of 12.
14:23 NotFound_b When in doubt, look at t/advanced/10scope.t and enjoy.
14:23 jay karma jayemerson
14:23 aloha jayemerson has karma of 1.
14:23 whiteknight karma (Jay Emerson)
14:23 aloha (Jay Emerson) has karma of 0.
14:23 whiteknight karma Jay Emerson
14:23 aloha Jay Emerson has karma of 12.
14:23 whiteknight karma jayemerson
14:23 aloha jayemerson has karma of 1.
14:24 jay Still a long way off from the 10,000 needed for a beer...
14:24 whiteknight awesome. So it looks like you're only 9,987 away from a goodie bag of some sort!
14:24 Eclesia how much needed for a chocolat ?
14:28 Eclesia karma Eclesia
14:28 aloha Eclesia has karma of 7.
14:28 Eclesia :o
14:29 NotFound_b left #parrot
14:32 dalek NQR: 3114f3d | (Jay Emerson)++ | / (5 files):
14:32 dalek NQR: Winxed example working!
14:32 dalek NQR: review: https://github.com/NQRCore/NQR/commit/3114f3d9a7
14:41 whiteknight Where does that GSL class come from?
14:43 jay Just a namespace in NQR at this point, if that is what you are asking about.  Eventually GSL will be a module like bubaflub's GMP.
14:43 whiteknight ok
14:43 whiteknight I just couldn't find where it was defined
14:43 jay I guess it is implicitly defined in src/nqr.pir
14:44 jay Remember: you're essentially looking at a hack of squaak.  May be very dated.
14:44 whiteknight ok
14:56 Eclesia left #parrot
15:06 whiteknight hmmm.... I didn't realize we had a uuid library in the parrot repo
15:09 whiteknight of course, it's fperrad++ so it's not really surprising. He's written so many cool, useful utilities for parrot
15:09 whiteknight I was thinking about putting together a library for Rosella to do it, but now I don't have ot
15:09 whiteknight to
15:11 dalek winxed: ed8699e | NotFound++ | / (3 files):
15:11 dalek winxed: start providing a version number
15:11 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/ed8699e082
15:16 logie joined #parrot
15:19 dalek NQR: 3037a66 | (Jay Emerson)++ | / (2 files):
15:19 dalek NQR: Adding minor NQR/PIR tests with FixedFloatArray
15:19 dalek NQR: review: https://github.com/NQRCore/NQR/commit/3037a66e9f
15:20 benabik ~~
15:23 jay back again later
15:24 dalek winxed: 4368a1a | NotFound++ | winxedst (2 files):
15:24 dalek winxed: delete the PMC variant of the sprintf builtin
15:24 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/4368a1a477
15:29 dalek winxed: 5b47f58 | NotFound++ | pir/winxed_ (2 files):
15:29 dalek winxed: update installable files
15:29 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/5b47f584fa
15:30 Eclesia joined #parrot
15:36 woosley left #parrot
15:42 dalek winxed/version_1_0: ccf5245 | NotFound++ | / (2 files):
15:42 dalek winxed/version_1_0: set version to 1.0.0
15:42 dalek winxed/version_1_0: review: https://github.com/NotFoun​d/winxed/commit/ccf5245bbb
15:47 mj41 left #parrot
15:48 whiteknight_ joined #parrot
15:52 whiteknight left #parrot
15:52 whiteknight_ is now known as whiteknight
15:54 cotto NotFound++ for catching that
15:59 theory joined #parrot
16:02 dalek parrot: 67551ad | NotFound++ | ext/winxed/ (3 files):
16:02 dalek parrot: update winxed snapshot to RELEASE_1_0_0
16:02 dalek parrot: review: https://github.com/parrot/parrot/commit/67551ad794
16:03 NotFound Winxed is ready for the stable release, unless some important bug appears.
16:06 darbelo joined #parrot
16:06 dalek parrot: 97325f1 | NotFound++ | ext/winxed/README:
16:06 dalek parrot: typo
16:06 dalek parrot: review: https://github.com/parrot/parrot/commit/97325f1a7f
16:07 logie left #parrot
16:09 benabik left #parrot
16:10 dalek winxed: ee44522 | NotFound++ | / (2 files):
16:10 dalek winxed: set version to 1.0.0
16:10 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/ee445229c6
16:13 writtencode joined #parrot
16:15 cotto Is anyone seeing the t/pmc/string.t failure kid51 reported?
16:16 Felipe I see two 'not ok', but they are marked as TODO
16:18 logie joined #parrot
16:18 cotto Felipe, are you on a 32-bit Linux distribution?
16:18 Felipe yes
16:19 cotto ok.  The system kid51 used seems to be some kind of 32-bit linux too.
16:19 Felipe cotto: btw, what is the error?
16:20 cotto http://trac.parrot.org/parrot/ticket/2152
16:20 cotto left #parrot
16:20 cotto joined #parrot
16:21 Felipe ouch
16:21 Topic for #parrot is now Parrot 3.5.0 "Menelaus" released | http://parrot.org | Log: http://irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 1930 UTC | Code freeze in effect except for test failure fixes
16:22 plobsing joined #parrot
16:23 whiteknight I'm seeing that failure on windows also. I was hoping an update would make it go away, but no
16:24 JimmyZ left #parrot
16:25 NotFound That can be related to my change to String.is_integer but I don't see why.
16:26 Felipe I see a failure now.
16:26 Felipe t/pmc/threads.t                           (Wstat: 256 Tests: 14 Failed: 1)
16:26 Felipe Failed test:  13
16:26 whiteknight Felipe: that test is broken. It fails occasionally
16:26 Felipe ah
16:27 cotto whiteknight, the string.t failure?
16:27 cotto If so, revert and stick it into a branch.  We can play with it there.
16:28 whiteknight cotto: no, the threads.t failure
16:29 cotto oh
16:29 whiteknight we should have a test to prove that threads.t fails intermittently
16:29 cotto TODO: stupid
16:29 whiteknight since apparently that is just the status quo
16:29 zby_home joined #parrot
16:30 cotto FAIL: threads.t did not fail in the last 10 runs
16:30 cotto ;)
16:41 NotFound I built only optimized since that change... that may explaain something...
16:43 lichtkind joined #parrot
16:43 NotFound Yes, reproduced, I'll look at it.
16:45 daniel-s left #parrot
16:47 whiteknight cotto: can you do me a favor?
16:47 whiteknight go fill out your #$^&@# GSOC mentor evaluation
16:47 whiteknight pretty please
16:48 bubaflub whiteknight: can i ask you for a favor? (unrelated to above)
16:48 whiteknight bubaflub: sure
16:51 bubaflub whiteknight: i need to run and meet someone for lunch so i'll be away for a bit, but if you get a free moment could you look at https://gist.github.com/1081697 and tell me what exactly my C error is?  i'm trying to compile some code generated from parrot_nci_thunk_gen which i've included in the gist.
16:53 whiteknight bubaflub: doesn't look like you are linking to libparrot
16:58 NotFound Oh, shit... found it, my fault.
16:59 cotto whiteknight, done
16:59 whiteknight cotto++
16:59 whiteknight sorry for the curse words.
16:59 cotto thanks for agitating
16:59 Eclesia left #parrot
16:59 cotto whiteknight++
17:00 cotto I didn't realize until this morning that they were due so soon.
17:01 whiteknight me either. Hence my frenzied emails
17:02 contingencyplan joined #parrot
17:05 dalek parrot: 4b344e6 | dukeleto++ | NEWS:
17:05 dalek parrot: Give NEWS some love
17:05 dalek parrot: review: https://github.com/parrot/parrot/commit/4b344e6cfe
17:13 dalek parrot: 232e4f9 | NotFound++ | src/pmc/string.pmc:
17:13 dalek parrot: fix String.is_integer method recently added branch for non fixed-8 encodings
17:13 dalek parrot: TT #2152, jkeenan++
17:13 dalek parrot: review: https://github.com/parrot/parrot/commit/232e4f95e8
17:21 NotFound bubaflub: use -c to compile, if not gcc assume that you want to link a program, not just compile an object.
17:21 bubaflub NotFound: ok.  and to link to libparrot do i just need to do -Llibparrot ?
17:21 whiteknight I think it's just -Lparrot
17:22 bubaflub ok, great.  i'll give that a try.
17:22 whiteknight bubaflub: parrot_config should contain all the cc flag sequences you need to build a binary
17:22 NotFound bubaflub: you need a main if you want to build an executable.
17:22 whiteknight NotFound: he's probably building a shared lib
17:22 whiteknight for NCI stuff
17:22 bubaflub whiteknight: yep; that's how i'm doing it now but i don't think i have -Lparrot in there yet.
17:22 mj41 joined #parrot
17:23 NotFound whiteknight: that's not want the linker says.
17:23 bubaflub whiteknight: i am indeed.  i'm kinda groping in the dark on how to do this, so any assistance is welcome.  i'm looking at the Makefile but it's a bit dense
17:23 NotFound "_main", referenced from: start in crt1.10.6.o
17:23 NotFound Doesn't look like a shared lib
17:24 whiteknight NotFound: I'm sure a shared lib is his intention, and the linker commandline is missing some details
17:25 bubaflub NotFound: i'm trying to compile the output of parrot_nci_thunk_gen, lemme check what i get frmo there
17:25 whiteknight bubaflub: like I said, look at some of the keys in parrot_config
17:26 NotFound There is not an automated way to do that? I don't think we expect people provide his linking instructions for such a thing.
17:27 whiteknight Your commandline will probably look something like this: ${parrot_config "cc"} ${parrot_config "cc_flags"} ${parrot_config "cc_inc"} ...
17:28 whiteknight NotFound: I think I want to put together a program to compile things like this
17:28 whiteknight it's so common to do, and a driver program to put all the pieces together would be very helpful
17:29 bubaflub whiteknight: you're right, it's embed-ldflags
17:29 whiteknight bubaflub: look through runtime/parrot/library/distutils.pir and find the places where it's building dynpmcs. Copy all that logic
17:30 NotFound embed? That's not embedding!
17:31 whiteknight the config hash is filled with fail
17:32 bubaflub ah, inst_libparrot_linkflags might be a better choice
17:32 bubaflub or even just libparrot_linkflags
17:33 mj41 left #parrot
17:39 cotto string.t failures: http://smolder.parrot.org/app/p​rojects/test_file_history/1/224
17:40 whiteknight I would very much like to see the config hash removed from Parrot entirely
17:40 whiteknight The only parts of it that are used by Parrot core are the include and load search paths
17:41 whiteknight And a much smaller mechanism could be devised to provide that information
17:41 whiteknight The config hash should be provided as a separate .pbc, to be loaded on demand if we need the crap it contains
17:42 bubaflub whiteknight: i agree.  there are lots of duplicates in there, also according to chromatic's performance wiki page it slows Parrot start up
17:43 bubaflub whiteknight: also, all of that information in one config hash forces it to be all configure time information - maybe we want values from what we are currently running on, not what we compiled on
17:43 dukeleto NotFound: congrats on winxed 1.0.0 ;)
17:43 benabik joined #parrot
17:43 NotFound Ah, the magic of version numbers ;)
17:44 dukeleto whiteknight: we definitely need to take into account how others use our config hash. For instance, PL/Parrot's build uses various config keys
17:44 dukeleto whiteknight: but I mostly agree. The current situation is sucky
17:44 whiteknight dukeleto: I'm not saying make it disappear, I'm saying not to make it a built-in part of libparrot. We should be able to load it on demand, not be forced to always keep a copy of it around
17:45 dukeleto whiteknight: +1
17:45 whiteknight a hash with 200+ keys, the vast majority of which are rarely or never used, isn't something we should be loading eagerly
17:45 NotFound And complicates linking, too.
17:46 whiteknight right. That's the entire reason for miniparrot
17:46 dukeleto this README is pretty hilarious https://github.com/spencertipping/rift
17:46 bubaflub whiteknight: i think we can safely prune some of the items and de-duplicate.  splitting into different hashes (one with build info and one with other info) would be a bigger change.
17:46 whiteknight we can cut that whole build step out
17:46 whiteknight bubaflub: I'm saying we just pull the whole thing out
17:47 bubaflub whiteknight: even better.
17:47 whiteknight bubaflub: like I said, the only things we currently need from that hash are the library search paths
17:47 whiteknight and we can find a different way to supply them.
17:47 NotFound The 'other info' can be provided by a pir library.
17:47 whiteknight Maybe a config file that goes with the install, and is only read when we call load_bytecode or attempt an .include
17:48 whiteknight more lazy == more good
17:48 NotFound whiteknight: but to read it, we need the search path ;)
17:48 dukeleto whiteknight: but that is pretty much all the time
17:50 dalek parrot: 82e6c72 | NotFound++ | src/pmc/bytebuffer.pmc:
17:50 dalek parrot: ByteBuffer vtable get_pointer
17:50 dalek parrot: review: https://github.com/parrot/parrot/commit/82e6c72689
17:51 dukeleto NotFound: adding new features to master right now (especially without tests) is going to give kid51++ a sad face
17:52 NotFound dukeleto: I'm sorry, I thought I was already added it before, but kept forgotten.
17:52 whiteknight NotFound: There's no difference between serializing the config hash into the libparrot binary, or just writing in a few constant strings into the libparrot binary
17:52 whiteknight in both cases, we have constants in the binary. In the second case, we aren't fiddling with hashes and STRING* to do it
17:52 dukeleto NotFound: not a huge deal, but a simple test for that would be greatly appreciated
17:54 NotFound dukeleto: that's not easy. A test for that may need a nci call, wich is not easy to do portably in a test.
17:55 bubaflub whiteknight: i'm getting this warning but everything compiles; should i be worried: i686-apple-darwin10-gcc-4.2.1: -lparrot: linker input file unused because linking not done
17:55 whiteknight bubaflub: what does it compile to? Is it compiling to .o or .so?
17:55 whiteknight or, whatever the equivalents are on mac
17:55 bubaflub .o
17:56 NotFound Then the compiler tells the truth.
17:57 whiteknight bubaflub: right, so now get it linked
17:59 bubaflub whiteknight: i'm a bit confused.  i thought i was getting it compiled and linked...
18:00 whiteknight bubaflub: what compiler are you using?
18:00 NotFound bubaflub: if you use -c as I told you, you are compiling.
18:00 whiteknight .o is just an object file, not a binary
18:00 bubaflub NotFound: i am.  here is the command line invocation (it's long): cc -fno-common -no-cpp-precomp  -pipe -fstack-protector -I/usr/local/include -pipe -fno-common  -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -I/usr/local/Cellar/libffi/3.​0.9/lib/libffi-3.0.9/include
18:00 bubaflub -I/usr/local/include/parrot/3.5.0-devel -L"/Users/bob/Desktop/work/parrot/blib/lib" -lparrot -Ipmc/pmc_nci.h -o src/GMP/thunks.o -c src/GMP/thunks.c
18:01 awwaiid left #parrot
18:01 whiteknight the -o part is specifying an object file to create, not a binary
18:01 whiteknight you're telling it to make thunks.o, not thunks.so
18:01 awwaiid joined #parrot
18:03 bubaflub whiteknight: sorry i'm so clueless when it comes to C; will i need to call ld next?
18:05 whiteknight bubaflub: it's okay. Like I said, you're going to have to look at distutils.pir to find out how it builds dynpmc shared libraries
18:05 whiteknight it will contain all the magic, just copy that
18:06 bubaflub whiteknight: yup, just found it.  line 1442.
18:07 whiteknight awesome
18:08 cotto_work ~~
18:08 dukeleto cotto_work: wilkommen
18:10 cotto_work dukeleto: halo
18:16 Coke left #parrot
18:17 bubaflub whiteknight: booyah.  now i've got thunks.bundle (which i believe is what the shared library stuff is on Mac)
18:19 bubaflub now i just need to figure out what to *do* with it.
18:19 Coke joined #parrot
18:20 whiteknight bubaflub: whoa whoa, we're making software here, not philosophy
18:21 whiteknight like, what is the purpose of anything, man?
18:21 bubaflub whiteknight: that's heavy.
18:22 bubaflub whiteknight: i was thinking more of how do i load this such that i don't need libffi.
18:24 whiteknight oh, you use the loadlib op, or whatever it is
18:24 whiteknight winxed may have a $loadlib directive
18:24 bubaflub i believe it does.
18:25 plobsing bubaflub: you need to loadlib the thunk library. If you've used the magic loader name (whose format escapes me at the moment), parrot should run the loader automagically, and the thunks will just be there
18:26 bubaflub plobsing: in the parrot Makefile there is just --dynext --no-warn-dups, i was hoping it would just run with that
18:28 plobsing bubaflub: it should work with that
18:28 plobsing you can use 'nm' to find the name of the loader function and then gdb to determine if it is being called
18:28 bubaflub plobsing: woot.
18:28 plobsing *if it does not work at first
18:29 bubaflub whiteknight: i'm having some trouble installing rosella from plumage; Null PMC access in set_string_native(), setup.winxed:339
18:30 dalek winxed: 6108d36 | NotFound++ | examples/Mysql.winxed:
18:30 dalek winxed: fix a bug in native string conversions in Mysql example
18:30 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/6108d366d2
18:33 dalek TT #2152 closed by jkeenan++: t/pmc/string.t, t/library/streams.t: new test failures
18:33 dalek TT #2152: http://trac.parrot.org/parrot/ticket/2152
18:35 whiteknight bubaflub: weird, I'll have to look at it tonight when I get home
18:36 bubaflub whiteknight: ok, i'm hacking on it
18:36 bubaflub whiteknight: it has to do with the sprintf("%s%s.pasm", [..., ...]); line
18:39 whiteknight okay
18:40 bubaflub whiteknight: actually, it might be my setup... i think i need to clean out my parrot and plumage and start over.
18:43 dukeleto bubaflub: that is caused by doing a partial recompile after updating
18:43 dukeleto bubaflub: git clean -fdx and try again
18:43 bubaflub dukeleto: ok
18:43 dukeleto bubaflub: git clean rm's files
18:43 bubaflub is that better than make realclean?
18:43 dukeleto bubaflub: make sure there aren't any uncommitted files before running that
18:43 bubaflub git stash to the rescue
18:43 dukeleto bubaflub: i still had the same problem when trying "winxed setup.winxed clean build"
18:45 bubaflub dukeleto: ok, i'll do that
18:48 dodathome left #parrot
18:52 bubaflub whiteknight: false alarm, that fixed it.
18:52 bubaflub well, now i have an entirely different problem
18:52 bubaflub src/namespace.c:367: failed assertion 'pmc_key'
18:52 bubaflub when trying to run any of my winxed tests
18:54 particle left #parrot
18:54 NotFound Oh, shit, another nice problem with nci and encoding: I can't use Parrot_str_new_init beacues it needs a length, and I can't get the c sring length from an UnManagedStruct
18:54 dukeleto bubaflub: i know about that too ;)
18:54 bubaflub dukeleto: do tell.
18:54 dukeleto bubaflub: that is caused by winxed being compiled by a different parrot than you are trying to comiple rosella with
18:55 particle joined #parrot
18:55 dukeleto bubaflub: that happened to me when the parrot that rakudo installs was in my path
18:55 bubaflub dukeleto: hmm... ok, lemme try and nuke winxed
18:55 dukeleto bubaflub: winxed gets installed when you install parrot. did you install a different one?
18:56 bubaflub dukeleto: no, i think i just have old PBC lying around.
18:56 dukeleto NotFound: other languages prefix parrot in their binary name. like parrot-nqp. Any good reason that winxed doesn't?
18:57 bubaflub dukeleto: phew, all is well in the land of Parrot-GMP again.
18:57 NotFound dukeleto: any good reason to do it?
18:59 NotFound bubaflub: there was a problem with the builtin sprintf in winxed, you need to update
18:59 bubaflub NotFound: ok.
19:00 dukeleto NotFound: not sure, but all other things in parrot do it, and winxed is now changing that pattern
19:02 * benabik is busy converting NQP to PIR.  It feels wrong.
19:02 NotFound dukeleto: winxed is the only winxed compiler in the world, there are no possible confusions.
19:02 dukeleto NotFound: there is "the latest winxed release" and there is "the winxed that came included with parrot". There are at least 2 now.
19:03 darbelo left #parrot
19:04 hercynium joined #parrot
19:04 NotFound dukeleto: in order to use winxed from other sources either you need to use build tree, in wich case you should know what you are doing, or you need to install it in parrot.
19:05 dalek GSL: ee2f8bf | (Jay Emerson)++ | / (2 files):
19:05 dalek GSL: Documented configuration improvements in line with bubaflub++
19:05 dalek GSL: review: https://github.com/NQRCore/GSL/commit/ee2f8bfc76
19:05 NotFound And if you install it, no matter what names you use for the driver, the load_language name must be the same.
19:05 dalek nqp: 6a6285f | pmichaud++ | src/QRegex/P6Regex/Actions.nqp:
19:05 dalek nqp: Remove some debugging output.
19:05 dalek nqp: review: https://github.com/perl6/nqp/commit/6a6285f0dc
19:05 dalek nqp: 30ed7ec | pmichaud++ | src/ops/nqp.ops:
19:05 dalek nqp: Add nqp_radix opcode for simplifying string->number conversions.
19:05 dalek nqp: review: https://github.com/perl6/nqp/commit/30ed7ec0d5
19:05 dalek nqp: 0eea302 | pmichaud++ | src/ops/nqp.ops:
19:05 dalek nqp: Fix underscore bug in nqp_radix opcode.
19:05 dalek nqp: review: https://github.com/perl6/nqp/commit/0eea302ae6
19:06 NotFound nqp does different things... and the result is that you can't load_language 'nqp'
19:06 benabik If I want to create a closure that uses the current lexical scope, do I have to use newclosure and capture_lex, or does newclosure handle it for me?
19:07 benabik My other questions would be "how do I get a sub pmc"?
19:08 NotFound benabik: newclosure do it
19:10 NotFound benabik: if you get the sub, it's already a Sub PMC
19:10 benabik NotFound: How do I get the sub?
19:12 NotFound benabik: if it's in the current PIR, you can just use its name or subid.
19:13 NotFound Or you can use get_global and family.
19:13 benabik newclosure 'sub_name' ?
19:13 benabik PIR confuses me.
19:13 whiteknight benabik: the source for the opcodes in question can be very instructive. src/ops/core.ops, I think, contains definitions for newclosure and capture_lex
19:13 NotFound benabik: winxed -c -o - -e 'var i; var f = function() { say(i);};'
19:14 NotFound That will show you what winxed does.
19:14 darbelo joined #parrot
19:16 NotFound (the var i is to force the anon function to be a closure)
19:19 benabik NotFound++
19:20 NotFound I wrote winxed mostly to never need to write such things by hand ;)
19:22 benabik Well, yes.  But I don't want to waste more time converting all of PCT::HLLCompiler to NQP or Winxed.
19:22 * benabik is adding a 'pbc' stage to HLLCompiler...
19:23 dukeleto benabik: what is your current worry?
19:23 NotFound benabik: no, but you can use winxed as helper, as I've just done right now.
19:24 benabik NotFound: indeed.  winxed++
19:24 NotFound You still need to write, but a least you don't neeed to have that gory details in your head.
19:24 benabik dukeleto: Current worry?
19:37 dukeleto benabik: you sound worried :)
19:38 benabik dukeleto: Ah.  I'm trying to figure out wedging PBC generation into the PCT tests.  It's interesting to say the least.
19:43 Coke http://www.google-melange.com/gsoc/grading_project​_survey/take/gsoc_program/google/gsoc2011/midterm is a 404.
19:45 Coke so, I can't file a midterm eval.
19:46 benabik Coke: I don't know if the site is different for mentors, but I found the midterm under my dashboard.
19:46 dukeleto Coke: that URL is probably not valid for a mentor
19:46 dukeleto Coke: if you login, you should have some kind of notice
19:46 Coke ah. further in the thread was a note that the link carol sent out didn't work.
19:47 Coke benabik++
19:47 cotto_work Coke: you're happy now?
19:50 bluescreen left #parrot
19:51 bluescreen joined #parrot
19:52 telemachus_ joined #parrot
19:52 telemachus_ hmm
19:53 telemachus left #parrot
19:53 telemachus_ is now known as telemachus
19:53 mtk left #parrot
19:54 logie left #parrot
19:54 loganbell joined #parrot
19:54 loganbell is now known as logie
19:55 Coke cotto_work: as happy as I get.
19:57 mtk joined #parrot
19:57 telemachus left #parrot
19:57 particle1 joined #parrot
19:58 mj41 joined #parrot
20:00 cotto_work Coke: wfm
20:01 particle left #parrot
20:02 whiteknight Coke: We need to find a way to raise the maximum limit
20:04 dalek rakudo/nom: f7e4cec | moritz++ | src/Perl6/Actions.pm:
20:04 dalek rakudo/nom: (re-)introduce radcalc, but smarter than before
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f7e4cecfbf
20:04 dalek rakudo/nom: 64fe676 | moritz++ | src/Perl6/Actions.pm:
20:04 dalek rakudo/nom: allow arbirary number of trailing zeros. Wins back the few tests that the previous commit regressed
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/64fe6768a7
20:04 dalek rakudo/nom: 8097419 | moritz++ | src/Perl6/Actions.pm:
20:04 dalek rakudo/nom: hopefully speed up stripping of trailing zeros
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/80974191c5
20:04 dalek rakudo/nom: 09a43b7 | moritz++ | src/Perl6/Actions.pm:
20:04 dalek rakudo/nom: remove (mostly PIR) functions that are now mostly unused
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/09a43b7f1f
20:04 dalek rakudo/nom: e939a8b | moritz++ | src/Perl6/Actions.pm:
20:04 dalek rakudo/nom: get :16<DEAD_BEEF> style literals working
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e939a8bee9
20:04 dalek rakudo/nom: 01df600 | moritz++ | src/Perl6/ (2 files):
20:04 dalek rakudo/nom: refactor numeric constants to do the PAST::Want magic in a single place
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/01df600ad2
20:04 dalek rakudo/nom: 9c93942 | moritz++ | src/Perl6/ (2 files):
20:04 dalek rakudo/nom: Merge branch 'nom-num' into nom
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c93942a59
20:04 dalek rakudo/nom: 76d6591 | moritz++ | t/spectest.data:
20:04 dalek rakudo/nom: remove testfile from spectest.data, because it is gone from roast
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/76d6591bb3
20:07 mtk left #parrot
20:07 perlite left #parrot
20:09 mtk joined #parrot
20:09 perlite joined #parrot
20:13 dalek NQR: f68c298 | (Jay Emerson)++ | / (4 files):
20:13 dalek NQR: Updated silly examples of the calls
20:13 dalek NQR: review: https://github.com/NQRCore/NQR/commit/f68c298438
20:14 dalek rakudo: 1ddda5e | moritz++ | build/Makefile.in:
20:14 dalek rakudo: track branch rakudo-master of the roast repository
20:14 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/1ddda5e4cd
20:16 jay PIR philosophy or internals: is there a difference in the way a ResizableFloatArray and a FixedFloatArray store the data?  Or is the difference only in the away they are initialized (with subsequent resizing then allowed or not)?
20:20 dukeleto jay: i know what you are asking about
20:21 dukeleto jay: RFA's take up more space, and are slower
20:21 Coke left #parrot
20:21 Coke joined #parrot
20:21 jay If it's too deep or doesn't matter, that's ok.  I'm just wondering if I pass a pointer to the data of a RFA will I risk segfaulting in some C library?
20:21 jay I trust FFAs are safe in that respect.
20:21 dukeleto jay: FFA's take up less, space, and are faster. Both should allow being created, with the size of it being given. You got an error about init_pmc not being defined for one of them?
20:22 dukeleto jay: are you only reading from the RFA data? What exactly are you doing?
20:22 Coke whiteknight: what limit?
20:22 jay No, I think I've cracked that nut with help from folks.  I might be reading or writing I suppose.  Trying to decide if I want a class 'vector' that only uses FFAs, or if it really matters.
20:23 dukeleto jay: also, whiteknight++ has something called parrot-data-structures which implements lots more kinds of datastructures.
20:23 jay But I need to pass pointers to the data to other libraries (along with the length) and not crash.
20:23 jay Ah -- that I should look at methinks.
20:23 dukeleto jay: you should copy the data, then pass it along. Other libraries should not be modifying Parrot objects.
20:24 dukeleto jay: that will surely lead to segfaults
20:24 dukeleto jay: https://github.com/whitekni​ght/parrot-data-structures
20:24 dukeleto jay: sparse arrays will probably be very useful for you
20:25 jay Er, well, yes and no.  I'm ultimately thinking of very big things that I do NOT want to copy.  And I do want to modify, albeit very carefully.  Surely that wouldn't segfault.
20:25 jay No, I know about sparse arrays.  Fine, not not what my focus is.
20:26 dukeleto jay: i guess if you don't modify the metadata of the parrot object, and you are only changing some values in the array, that should work
20:26 dukeleto jay: but if you accidently corrupt tha parrot object metadata, badness will occur
20:27 whiteknight ResizableFloatArray inherits from FixedFloatArray, but provides resizing behavior instead of bounds-check-and-error behavior
20:27 jay Right, exactly.  In R there is no notion of "resizable" by the way.  Don't need it.  And the external libraries would only get the pointer to the data, not the metadata.
20:27 whiteknight in reality, the two types are almost identical, except a few small differences and a huge amount of unnecessary duplication
20:27 jay whiteknight... ok, that sounds completely reasonable.
20:27 whiteknight Personally, I would love to cut the crap and have a single "FloatArray" type that can resize or not depending on settins
20:28 jay But for efficiency reasons it sounds like I might as well just use FFAs.
20:28 whiteknight jay: for your purposes, the two types use a malloc'd memory buffer that is a simple C FLOATVAL array
20:28 whiteknight jay: besides resizing behavior, the two are exactly the same
20:28 whiteknight you can pre-size a ResizableFloatArray, and get exactly the same performance out of it
20:29 jay Yup, good.  Eventually I'll want to memory-map, and i have notes from you (I think) on MappedByteArray that I need to look at, too.
20:29 ambs left #parrot
20:29 whiteknight FixedFloatArray actually can resize, by calling set_integer_native. The difference is that FixedFloatArray requires you to do this manually, ResizableFloatArray does it automatically. Otherwise, no difference
20:29 whiteknight And since both types need to bounds check to determine behavior on overflow, the performance should be identical
20:30 jay Ok, maybe dukeleto was thinking about some other aspect of them.
20:30 whiteknight anyway, I'm heading home now. Talk to you later
20:30 whiteknight left #parrot
20:30 jay thanks!  whiteknight++
20:30 jay dukeleto++ thanks, too.  I like the phrase "badness will occur."  I'll try to avoid that.
20:30 particle joined #parrot
20:30 dukeleto jay: whiteknight probably knows better. I assumed FFA's were faster. But only a benchmark can tell the truth
20:31 jay ok
20:31 dukeleto jay: i am pretty good at making badness occur, so I try to warn others :)
20:32 dukeleto jay: it is really nice to see your GSL bindings coming along. I have been wanting to write that for a long time, and now I don't have to ;)
20:32 cotto_work dukeleto: any thoughts on the new M0 ops I added last night?
20:33 dukeleto cotto_work: didn't see them yet
20:33 cotto_work use bytes; is fun\
20:34 particle1 left #parrot
20:34 NotFound dukeleto: it needs to do bound checking anyway, there is no pssible shortcut to make it faster that the resizable variant.
20:34 dukeleto cotto_work: i see the value in them.
20:35 dukeleto cotto_work: they would be quite useful for m0 strings
20:35 cotto_work dukeleto: that's the exact use case I'm thinking of.
20:36 cotto_work dukeleto: the question I have is whether there's a better way to get that functionality.  I suspect not, but I don't know for sure.
20:36 cotto_work I'm writing a quick example to see what it's like to actually use them.
20:38 dukeleto cotto_work: i like it
20:40 darbelo left #parrot
20:41 cotto_work dukeleto: thanks
20:43 dukeleto jay: according to examples/benchmarks/array_access.pir --arr-size=2000 , there is about a 5% performance penalty for ResizableFloatArray vs. FixedFloatArray
20:43 dukeleto jay: which is for arrays of size 2000
20:43 ambs joined #parrot
20:43 dukeleto jay: https://gist.github.com/1083395
20:44 jay Gotcha.  Not an order of magnitude, then.
20:46 jay Err... is it backwards?  FixedFloatArray: 0.824878931045532s vs ResizableFloatArray: 0.782232999801636s?  FFA is slower (this is the 2000*1000 case)?
20:46 dukeleto jay: also, as arrays get larger, the penalty goes down. arrays of 10000 there is only a 1% penalty
20:47 jay Yes... fixed cost of doing business gets washed out.
20:49 dukeleto jay: https://gist.github.com/1083408
20:49 dukeleto jay: that shows it 1% the other way for arrays of size 10,000
20:50 jay Yup.  Small.  So I'll think about design rather than performance.
20:50 plobsing left #parrot
20:50 dukeleto jay: one thing to note is that PMCArrays are much slower. Stay away from them unless you really need them.
20:50 dukeleto jay: does R have the concept of an "object" ?
20:51 dukeleto jay: or is everything a vector? does it differentiate between vectors and matrices?
20:51 jay I'd use them for something I would call a data.frame (yes, it does, dukeleto), which is a list of vectors of possibly different types.
20:51 * dukeleto mostly used matlab and mathematica in previous lives
20:51 jay An array is a vector with a dimension attribute.
20:51 jay You can make a vector into an array just by changing the dim attribute, without making a copy.
20:52 jay (as long as the conversion makes sense)
20:52 darbelo joined #parrot
20:53 jay So I was thinking a data.frame would be a PMC array containing things like FFAs and FIAs and FSAs.
20:54 * Coke is so sick of gsoc mentor mailing list drama.
20:54 Coke (not just this year. just years and years of it.)
20:55 cotto_work I solve that problem by almost completely ignoring it.
20:55 cotto_work almost
21:05 soh_cah_toa joined #parrot
21:05 soh_cah_toa ~~
21:06 Coke mmmm.
21:10 dukeleto Coke: i solve it by completely ignoring it
21:11 dukeleto jay: PMCArrays are fine for a few elements. But creating large PMCArrays should only be done if you actually need a PMCArray, is all I meant to say
21:12 jay Ok.  I'll revisit this once I get through some of the more basic stuff.  !-)
21:12 dukeleto jay: keep on truckin'!
21:12 dukeleto i must say, melange has come a long way. I actually have an "org admin dashboard" now
21:14 Felipe where is the gsoc project list?
21:15 Felipe I see
21:29 fperrad left #parrot
21:29 dukeleto soh_cah_toa: ping
21:29 soh_cah_toa dukeleto: pong
21:30 dukeleto soh_cah_toa: i am getting emails about you not having done your eval yet. Why do you hate my inbox?
21:30 cotto_work Think of the dukes.
21:30 dukeleto soh_cah_toa: the eval takes 1 minute
21:30 ambs left #parrot
21:30 dukeleto soh_cah_toa: i just did mine.
21:30 cotto_work It was much easier than I was expecting.
21:30 soh_cah_toa dukeleto: well, i was putting it off but i'm doing it now
21:30 mj41 left #parrot
21:31 dukeleto soh_cah_toa: good to hear :)
21:38 dukeleto Felipe: are you the same felipe that recently fixed a memory leak in imcc? if so, nice work!
21:38 Felipe it's me
21:39 Felipe thanks :)
21:39 Felipe too much code to read, to much files!
21:39 Felipe :D
21:43 Psyche^ joined #parrot
21:45 dukeleto Felipe: are you using valgrind to find leaks?
21:45 benabik Huh.  I ended up losing the converted pbc stage method.  Guh.
21:46 Felipe dukeleto: yes.
21:47 dukeleto Felipe: awesome. just wondering.
21:48 jay Resizable*Array inherits from Fixed*Array.... does Fixed*Array then inherit from array?  Hence pir::does($arg, "array") succeeds for both?
21:48 Patterner left #parrot
21:48 Psyche^ is now known as Patterner
21:48 dukeleto jay: i dont' think we have a plain Array PMC
21:48 benabik So I get to write all the PIR again.  Joy.
21:48 dukeleto jay: they both probably inherit from the Default PMC
21:49 dukeleto benabik: how do you lose stuff?
21:49 benabik dukeleto: I really don't know.  I think I mis-used git-stash.
21:49 benabik It's probably _somewhere_ in my git objdb, but I don't know where.
21:49 dukeleto benabik: git reflog ?
21:50 dukeleto which should be called, git savemyass
21:50 benabik dukeleto: I didn't commit it...  Which is really my mistake.
21:50 benabik dukeleto: I had stashed it, but it doesn't appear to be in my stashes.
21:51 dukeleto benabik: were you working on a differnt machine? I switch between so many machines that sometimes a branch is not where I remember it
21:51 benabik dukeleto: Nope.  Just have the laptop.  I was just dumb.
21:51 benabik I know how to write it now, so it should be fast.
21:51 dukeleto benabik: good perspective to have :) Buena suerte!
21:58 dmalcolm left #parrot
22:10 jay Are the literal types (Integer, String, Float) technically classes?  I'm guessing maybe not.
22:11 sorear How do you mean?
22:11 jay So I could create a class 'integer' containing an Integer, and then something else could inherit from class 'integer'... just guessing.
22:11 sorear We have classes named Integer, String, and Float
22:11 sorear it's also possible to create native registers of those types, which are *not* classes
22:12 jay Or can I do  'Boolean is Integer', where Boolean is my new type, inheriting from Integer?
22:12 cotto_work You could if we didn't already have one.
22:12 sorear jay: what language are you using?
22:13 sorear I think it needs to be Boolean extends Integer for pmc2c
22:13 jay Writing an HLL.  I see PIR docs on classes and subclasses.  Are there docs for NQP-rx or Winxed on this stuff?  Or good example code to look at?  I didn't see subclass material in bubaflub's stuff.
22:14 sorear you need to know that Parrot has two largely independant class/object systems
22:14 jay Uh oh
22:14 sorear the primitive classes are called pmclasses, they include Integer, String, Float, etc
22:15 sorear there are 2 special pmclasses, Class and Object, which implement a *second* object system
22:15 sorear most HLLs work only with instances of Object
22:16 sorear pmclasses can only be created using C code with the pmc2c preprocessor; PIR generates Class instances
22:17 sorear there's special magic to allow Classes to inherit from pmclasses, but it's slow and semantically horrible
22:17 * benabik 's git-fu is weak today.
22:18 sorear NQP contains a third object system, based on the SixModelObject pmclass
22:18 NotFound jay: in winxed to inherit from a PMC you can do: class MyInteger : ['Integer'] { ... }
22:19 Felipe dukeleto: did you changed the NEWS file mentioning the leak?
22:19 dukeleto Felipe: yes, i added it to NEWS
22:19 Felipe dukeleto: but it was not merged yet
22:19 jay NotFound: ok, that looks hopeful.  sorear: I sort of follow, and need to be more aware.  Again, any doc recommendations are always appreciated.
22:20 dukeleto Felipe: i thought that I saw the pull request get closed. Did it get pulled into a branch other than master?
22:21 Felipe dukeleto: nop, the close was my mistake. I opened it in the morning.
22:21 whiteknight joined #parrot
22:22 Felipe never had used this pull request stuff before :p
22:23 dukeleto Felipe: ah
22:28 dukeleto Felipe: i am running tests on my machine and will merge it if everything looks good
22:29 Felipe dukeleto: thanks, sorry for the confusion :)
22:30 dukeleto Felipe: no worries, pull requests are slightly confusing at first, but they are really quite awesome
22:37 benabik Yay!  t/compilers/pct/complete_workflow.t is now failing!
22:37 whiteknight failz
22:38 benabik Well, to be more specific, it's now failing in the way I needed it to.
22:38 benabik Namely failing because it doesn't know how to compile to PBC correctly.
22:39 bubaflub left #parrot
22:40 whiteknight oh, this is in your branch?
22:40 benabik Yes.
22:42 dalek parrot: 6623080 | (Felipe Pena)++ | compilers/imcc/imcc.l:
22:42 dalek parrot: - Fixed memory leak on imcc_compile_buffer_safe() function (#2141)
22:42 dalek parrot:
22:42 dalek parrot: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
22:42 dalek parrot: review: https://github.com/parrot/parrot/commit/6623080180
22:42 dalek parrot: a792bdd | (Felipe Pena)++ | compilers/imcc/imclexer.c:
22:42 dalek parrot: - Regenerated imclexer.c file
22:42 dalek parrot:
22:42 dalek parrot: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
22:42 dalek parrot: review: https://github.com/parrot/parrot/commit/a792bdda25
22:42 dalek parrot: 6c82876 | dukeleto++ | compilers/imcc/imc (2 files):
22:42 dalek parrot: Merge branch 'fix_imcc_memory_leak'
22:42 dalek parrot: review: https://github.com/parrot/parrot/commit/6c82876dfb
22:43 dukeleto make fulltest passed for me, and it was a bugfix, so i decided that it was OK to merge to master
22:49 cotto_work dukeleto: wfm
22:51 dukeleto Felipe: ok, NEWS is correct now :)
22:51 dukeleto Felipe: and congrats to getting your first patch accepted
22:51 dukeleto Felipe: i am excited to see more :)
22:53 whiteknight left #parrot
22:53 whiteknight joined #parrot
22:57 dalek nqp: 134720b | pmichaud++ | src/ (2 files):
22:57 dalek nqp: Add a few more useful option flags to nqp_radix opcode.
22:57 whiteknight left #parrot
22:57 dalek nqp: review: https://github.com/perl6/nqp/commit/134720b114
22:57 whiteknight joined #parrot
23:06 soh_cah_toa left #parrot
23:08 dalek rakudo/nom: 3cf23af | pmichaud++ | / (3 files):
23:08 dalek rakudo/nom: Update Str.Numeric to be a lot more correct.  Numifying strings now
23:08 dalek rakudo/nom: tend to return Int/Rat/Num instead of always being a Num.  This
23:08 dalek rakudo/nom: code is intended to handle the common cases; uncommon cases are
23:08 dalek rakudo/nom: likely to ultimately be handled by the compiler somehow.
23:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3cf23afdeb
23:21 kid51 joined #parrot
23:21 zby_home left #parrot
23:22 soh_cah_toa joined #parrot
23:23 soh_cah_toa ~~
23:24 Felipe dukeleto: :D
23:24 hercynium left #parrot
23:25 dalek website: NotFound++ | Winxed 1.0.0
23:25 dalek website: http://www.parrot.org/content/winxed-1.0.0
23:28 whiteknight left #parrot
23:30 bluescreen left #parrot
23:31 kid51 left #parrot
23:33 kid51 joined #parrot
23:35 jay Question: In the Ch 4 of the pir book, I quote "The array types that include "String", "Integer", or "Boolean" in the name use alternate packing methods for greater memory efficiency."  Does this mean I can't depend on a FixedIntegerArray of length N actually being N*sizeof(int) bytes long?
23:36 jay Sounds like a recipe for a segfault if I'm passing a pointer to the data in a FixedIntegerArray to some external library.
23:37 NotFound jay: is not int, is INTVAL. It may be the same as int, or not.
23:38 soh_cah_toa jay: if you need the length of a Fixed*Array, use the elems() method
23:38 soh_cah_toa i think that's it's name, let me double check
23:38 jay ok.  I don't want that soh_cah_toa, I'm passing the data to an external C function.
23:39 sorear jay: what that sentence means is that FixedIntegerArray does not contain PMCs
23:39 soh_cah_toa eh...
23:39 jay sorear: ok.  Any reason not to say that -- seems not at all clear to me.
23:40 soh_cah_toa oh really? i always assumed Fixed*Array meant that it used the * pmc. never new that
23:40 soh_cah_toa *knew
23:41 jay Second suggestion, if someone is taking notes:  FixedBooleanArray is there, and I'm interested in Boolean, but Boolean doesn't get any mention as one of the atomic types in the material up to that point.  Would be an easy addition.
23:41 jay Or I'd be happy to do something with these suggestions, if there is a "recommended" way to contribute?
23:42 soh_cah_toa jay: that pir book is actually very old and not worked on much any more. though i would love to see it updated
23:43 sorear jay: boolean is *not* an atomic type
23:44 jay Well, I expect it is a PMC with a class probably inheriting from Integer.  And integer is a PMC that is a "thin layer" over a literal integer?  Or am I wrong?
23:44 jay < sorry, first integer should have been Integer >
23:44 NotFound BooleanArray is a bag of bits
23:44 jay Ah -- you really pack them?
23:45 jay Not sure the memory savings is worth the overhead in this day an age, but fine.
23:46 jay So there is no Boolean in isolation that is the counterpart of Integer, Float, and String PMCs... hence not really discussed until you get into the Aggregates liek FixedBooleanArray?
23:47 NotFound Yes, there is one. But is not directly related to the BooleanArray types.
23:48 NotFound The other Array aren't also directly related to its non array counterparts.
23:48 jay Ok.  I'm happy leaving it for now, then.  Thanks.  I think I have what I needed... that original confusion over what was meant by " alternate packing methods for greater memory efficiency".
23:49 NotFound I think that this just means that they are not PMC arrays.
23:49 bluescreen joined #parrot
23:51 jay Ok.  Any thoughts on a formal doc effort?  There is something nice about the "example-based" approach, often... but not always.
23:51 jay You might even get me to help... since I'm asking a lot of questions anyway.
23:52 sorear jay: interpreters for garbage-collected languages tend to be limited by cache bandwidth, so memory savings are direct speedups
23:52 NotFound jay: most of us are coders by heart, we usually spend more time in the code than in documenting how to use it.
23:53 jay I understand.  It does mean you'll continue to get questions that might otherwise have been answered in formal docs.  That will eventually wear you out.
23:53 soh_cah_toa indeed
23:53 jay I actually thing there are decent materials out there, but I'm having a hell of a time finding where I need to be, often.
23:53 jay < think >
23:54 * soh_cah_toa has the same experience on a daily basis
23:54 NotFound jay: My approach is to make the language easier to read, thus decreasing the number of questions ;)
23:55 jay That's a very worthy goal, no question.  I've learned a lot (though not enough) about Winxed by reading bubaflub's code.  I need either more formality... or more similar blocks of code I can chew over in a helpful way.
23:56 jay Maybe I should start.  NotFound: is there any real doc effort for Winxed underway?  If not, could I start it?
23:57 dalek TT #920 closed by jkeenan++: parrotbug should provide more guidance when it finishes
23:57 dalek TT #920: http://trac.parrot.org/parrot/ticket/920
23:57 NotFound Unfortunately the winxed compiler is not a very good example, beacaus it must restrict the syntax used to be compilable by stage 0.
23:58 NotFound jay: whitenight has been wrtiting some documentation.
23:58 jay Maybe I'm at a different level.  I only care about writing Winxed as an attractive alternative to NQP for building an HLL, but I need to know how the variable types, classes, etc... related to the underlying PIR ultimately.  Without guessing.
23:58 bubaflub joined #parrot
23:58 NotFound I don't have the url at hand because winxed.org is having problems.
23:59 NotFound Let me look at my copy...
23:59 NotFound Found: http://whiteknight.github.co​m/Rosella/winxed/index.html
23:59 bubaflub jay: that's where i go for all my Winxed needs

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

Parrot | source cross referenced