Camelia, the Perl 6 bug

IRC log for #parrot, 2011-07-10

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 jay https://gist.github.com/1074072
00:01 NotFound jay: will be more impressive if you show some generated random numbres.
00:01 cotto not sure how to reproduce that.  Doing the naive thing and exporting LANG=fr_FR@euro before reconfiguring and building doesn't cause anything unusual other than perl complaining about LANG
00:02 cotto 3
00:02 cotto 3
00:02 cotto 3
00:02 cotto 3
00:02 cotto 3
00:02 jay Ok, not random because I chose the seeds... but you get the idea!  My first "pseudo-random number" was there.
00:03 NotFound jay++
00:03 jay cotto: you mean this shouldn't have worked.   < sigh >  Well, maybe I can contribute something.  Want to see the code?  It's VERY concise in my Runtime.pm.
00:03 kid51 cotto:  Where did you get perl to complain about LANG?
00:03 cotto kid51, any time perl is run
00:04 kid51 cotto:  I don't get that complaint.
00:04 NotFound kid51: perl barfs when started with a locale it doesn't know, unless you have some env var set to soemthing I don't remember.
00:04 jay ah, sorry... cotto was in a different conversation.  jay--
00:04 bubaflub jay: i don't know if it'll interest you, but my GSoC project is getting NCI Parrot bindings to GMP
00:04 kid51 $ LANG=fr_FR@euro
00:04 kid51 $ echo $LANG
00:05 kid51 fr_FR@euro
00:05 kid51 $ perl -E 'say qq{hello world}'
00:05 kid51 hello world
00:05 cotto kid51, still complains for me
00:05 NotFound kid51: then you have support for that lang, or you have that warnings silenced by defalut.
00:06 jay bubaflub: actually, that is very interesting.  I know there were some real license issues the R Project struggled with having to do with these math libraries, and if I could do something equivalent without having to worry about that....
00:06 NotFound Or even, a perl configured without locale support.
00:06 kid51 I get no complaint on either linux/i386 or darwin/ppc -- Am using Perl 5.14 both
00:07 bubaflub jay: hmmm, i don't know much about that.  GMP is definitely GNU licensed...
00:07 cotto kid51, do you see the same failure?
00:07 jay bubaflub: just glanced at the first page I found.  Are you generating random numbers from the standard distributions?
00:07 kid51 NotFound:  I certainly made no attempt to deliberately configure my perls without locale support.
00:08 bubaflub jay: i'm just using whatever GMP has.
00:08 NotFound $ LANG=fr_FR@euro
00:08 NotFound $ perl
00:08 NotFound perl: warning: Setting locale failed.
00:08 jay bubaflub: I think some of R's math library were BSD or something a little odd and potentially incompatible with the GNU choice of R.
00:08 NotFound perl: warning: Please check that your locale settings:
00:08 NotFound LANGUAGE = (unset),
00:08 cotto It looks like it'll be easy to isolate once we can reproduce it.  The build breaks the first time that Parrot is run.
00:08 NotFound LC_ALL = (unset),
00:08 NotFound LANG = "fr_FR@euro"
00:08 NotFound are supported and installed on your system.
00:08 NotFound perl: warning: Falling back to the standard locale ("C").
00:08 bubaflub jay: i know that they have a number of different functions that you can use - some with better distributions, some with better speed, and so on
00:08 cotto NotFound, same here
00:08 jay Ok, thanks for the reference, I'll have a look.  Very helpful to know.
00:09 jay bubaflub++
00:09 bubaflub jay: yep.  my code is at http://github.com/bubaflub/parrot-gmp
00:09 NotFound Of course, I don't have fr_FR@euro support installed in this system.
00:09 bubaflub jay: winxed source, but pir included as well.  covers all Integer functions and related Random functions; decimal and rational stuff to come after the summer.
00:10 NotFound kid51: locale -a in linux will tell you the locale available in the system.
00:10 jsut_ joined #parrot
00:10 NotFound I have: C, POSIX and es_ES.utf8
00:12 kid51 NotFound: On this Debian I have fr_FR@euro in /usr/share/i18n/SUPPORTED
00:12 jsut left #parrot
00:13 NotFound kid51: SUPPORTED does not imply that you have it installed.
00:14 cotto sudo locale-gen fr_FR@euro
00:15 cotto this looks promising
00:15 kid51 NotFound: On my debian, I have fr_FR@euro in locale -a.  I have successfully built and tested Parrot thru make test with fr_FR@euro
00:16 cotto I get a nice spectacular failure.
00:18 dalek rakudo/nom: 4677323 | jonathan++ | LHF.markdown:
00:18 dalek rakudo/nom: A few more bits of LHF.
00:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46773231f1
00:18 dalek rakudo/nom: e42b089 | jonathan++ | src/Perl6/Actions.pm:
00:18 dalek rakudo/nom: Fix a few compile-os. Of note, this gets default { ... } to work again.
00:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e42b0894da
00:19 kid51 On my (older) Mac, locale -a says I have:  fr_FR fr_FR.ISO8859-1 fr_FR.ISO8859-15 fr_FR.UTF-8
00:20 kid51 ... but no fr_FR@euro
00:21 jay bubaflub: it looks like the original GMP is LGPL.  I really like that, it is more permissive than GPL.  There are some real debates over GPL, including 2 vs 3. I had dinner with Richard Stallman once.
00:21 NotFound Parrot_oo_get_class allow a ResizableStringArray as key but no other array types. There is some reason for that restriction, or is just an accident?
00:21 * kid51 once passed up the opportunity to have dinner with Richard Stallman
00:21 cotto kid51, that'd be memorable
00:21 jay It was an experience, kid51.
00:22 cotto jay, one-on-one or as part of a group?
00:22 kid51 That non-dinner followed attendance at a session featuring a leading Linux dev/user from Dominican Republic; RS was in attendance
00:23 kid51 He wanted to go to Chinatown; I did not.
00:23 jay He came to the UseR! conference last summer.  There was some problem with whether some of the equipment was properly open-source, so he was in a bad mood... I was the first person brave (!) enough to try to engage him.
00:24 kid51 The speaker from the DR was quite interesting.
00:25 kid51 What is the command you use to get Debian version info?
00:25 cotto looks like Parrot dies when trying to print "Unknown codeset `%s', defaulting to ASCII"
00:26 kid51 That's where?  During 'make'?
00:26 cotto looks like the same failure as on parrot-dev according to the backtrace there
00:26 NotFound Uhh... Maybe our old friend %s vs s ?
00:26 NotFound Uhh... Maybe our old friend %s vs %Ss ?
00:26 cotto kid51, yes.  parrot doesn't build, so that's with miniparrot
00:27 kid51 src/platform/linux/encoding.c
00:27 kid51 56:                "Unknown codeset `%s', defaulting to ASCII", codeset);
00:27 jay bubaflub: may only be random uniforms ('continuous' and discrete).  Of course that is sufficient to lead to many other distributions when the inverse-cdf is available, or via other methods.  A start, certainly.
00:27 cotto NotFound, not in this case
00:27 NotFound No, codeset is char *
00:28 bubaflub jay: yeah, and there is certainly enough other stuff available to implement a custom solution.
00:28 kid51 Well, on darwin/ppc, I was able to successfully build parrot with LANG= fr_FR@euro even though that LANG does *not* appear in output of locale -a on that machine!
00:28 NotFound The platform encoding is initialized after the IO subsystem?
00:28 jay Many good algorithms are in the 'Numerical Recipes' book, but again, there are license and copyright issues.
00:29 kid51 IIRC, the src/platform/*/* files are run during Configure.pl
00:29 cotto kid51, It's not a problem unless LANG is an installed locale
00:30 NotFound Well, if the problem is only in building and not in running the workaround is simple: build with LANG=C
00:31 bubaflub jay: i'm only really familiar with psuedo-random algorithms for cryptographic purposes, not stats purposes.
00:31 cotto NotFound, yes, but an actual fix would be preferable.
00:31 kid51 NotFound: but see post on parrot-dev.  User apparently also wants to build Rakudo* with that locale
00:31 NotFound Wants to build, or want to use?
00:32 kid51 build -- but see the list if you need clarification
00:32 jay bubaflub: I don't know anything about cryptography.  They aren't completely disjoint, though.  There are some good information theory connections.
00:33 NotFound The problem is complex: apart from the building and running problems, we don't support that charset.
00:35 kid51 On Debian, in  /etc/locale.gen, I see:  # fr_FR@euro ISO-8859-15
00:36 cotto It looks like properly fixing this will require adding support for the ISO-8859-15 encoding
00:36 cotto aka Latin-9
00:37 NotFound cotto: yes, but then be ready for people demanding a iso-8859-x for x in [0 , +inf]
00:38 cotto NotFound, indeed
00:39 kid51 Perhaps we should consult with Rakudo (and other HLL) folks to see what they think we need to support.
00:39 kid51 In particular, fperrad
00:39 cotto though Latin-9 doesn't look like it's radically different from Latin-1
00:39 GodFather left #parrot
00:40 cotto It appears to change the meaning of 8 characters from Latin-1.
00:40 NotFound Parrot_str_init is called after Parrot_io_init, so in principle there is no reason for a segfault.
00:40 cotto NotFound, it's not a very elegant failure.
00:40 kid51 The user on parrot-dev seems to suggest that once upon a time (Parrot 2.11 (Dec 2010)) he could build Parrot w/that encoding
00:41 * kid51 must think about dinner
00:41 NotFound kid51: once upon a time people complained about encoding not honored in command line args and lots of other things.
00:42 rurban_ joined #parrot
00:42 kid51 NotFound: Yes I remember those complaints.  But that was/is mostly bout Chinese
00:44 NotFound kid51: that was with env vars if I remember well. The point is that the wider the encoding awareness is, the more problems arise.
00:44 rurban left #parrot
00:44 rurban_ is now known as rurban
00:46 nopaste "kid51" at 192.168.1.3 pasted "grep 'ISO-8859' /etc/locale.gen | cut -d ' ' -f3 | cut -d '-' -f3 | sort | uniq -c" (12 lines) at http://nopaste.snit.ch/59079
00:47 kid51 NotFound: Yes, I agree.
00:47 NotFound I think the problem is the usage of Parrot_warn before PMC initialization.
00:50 NotFound Proposed solution: use fprintf stderr instead of Parrot_warn
00:51 NotFound Solution for the segfault, not for the whole problem, of course.
00:52 NotFound Or even better, kill Parrot_platform_encoding_ptr
00:54 cotto NotFound, +1
00:55 NotFound The last idea will take time, I suggest we go with the first.
01:04 dalek parrot: e1483aa | NotFound++ | src/platform/linux/encoding.c:
01:04 dalek parrot: Don't use Parrot_warn in Parrot_init_platform_encoding,
01:04 dalek parrot: the interpreter is not initialized enough at that point
01:04 dalek parrot: review: https://github.com/parrot/parrot/commit/e1483aaf3c
01:05 jsut joined #parrot
01:07 kid51 I successfully build Parrot with LANG= fr_FR.ISO8859-15 on darwin/ppc
01:07 kid51 is now known as kid51_at_dinner
01:08 dalek website: soh_cah_toa++ | Load Source and Testing and Build Errors...Oh My!
01:08 dalek website: http://www.parrot.org/content/load-sour​ce-and-testing-and-build-errors...oh-my
01:08 cotto kid51_at_dinner, is that with the locale installed?
01:09 jsut_ left #parrot
01:10 NotFound Looks like we have more french users these days, BTW
01:12 cotto oui
01:12 NotFound Allons enfants de la parrotrie.
01:12 dalek rakudo/nom: f83f8ce | tadzik++ | / (3 files):
01:12 dalek rakudo/nom: Implement infix:<%%>, run tests
01:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f83f8ce1fd
01:17 cotto NotFound, an excessively noisy build is better than a broken one.
01:17 cotto thanks
01:18 cotto I'll see if there's a reasonable way to support Latin-9
01:18 NotFound cotto: perl does the same, we follow the masters ;)
01:19 NotFound If it becomes annoying, we can check an env var to silent it.
01:20 cotto NotFound, complaining when something's broken isn't bad
01:21 mro cotto: i have sent a pull request with some bitwise-operator tests! :-)
01:21 cotto mro, did you also verify that they're correct independently?
01:22 NotFound http://www.xav.com/perl/lib/Po​d/perllocale.html#environment
01:22 NotFound NOTE: PERL_BADLANG only gives you a way to hide the warning message. The message tells about some problem in your system's locale support, and you should investigate what the problem is.
01:23 cotto NotFound, that looks like a band-aid.  I would prefer not to add a Parrot-flavored analog.
01:23 NotFound cotto: agree, just a posibility if it becomes too annoying for someone.
01:24 mro cotto: yup!
01:25 cotto mro, great.  I'll look at it after figuring out what to do about latin9.  In the meantime, feel free to write more tests or poke some holes in the spec.
01:25 cotto mro++
01:25 mro cotto: I also converted the iton test to convert_i_n and fixed the test logic.
01:26 cotto mro, thanks
01:27 cotto That op needs well-defined semantics (and probably extensive tests for those semantics) before it'll be especially useful.
01:28 NotFound cotto: Parrot_oo_get_class allow a ResizableStringArray as key but no other array types. Do you know if there is some reason for that restriction?
01:30 NotFound Not urgent, just curious.
01:31 cotto NotFound, looks like that's not a happy function.
01:31 NotFound Yeah
01:31 NotFound I'm also thinking that we need Parrot_oo_get_root_class
01:32 NotFound root_new does not work well because of Parrot_oo_get_class
01:36 cotto Telling Parrot_init_platform_encoding to treat ISO-8859-15 the same as ISO-8859-1 causes the build to complete without any extra noise.  I don't know if that's the proper fix though.
01:37 NotFound But I don't think the people will be happy when its € and ¢ get converted to something...
01:37 cotto NotFound, what problem are you running into?
01:37 cotto ¤ is a nice character
01:38 NotFound cotto: I don't have the info at hand, I'll file a ticket tomorrow.
01:38 cotto NotFound, thanks
01:40 NotFound For the array, I was doing some test with the winxed get_class builtin and got surprised by the fact that: string key[] = [ "Getopt", "Obj" ]; cl = get_class(key); works but cl = get_class([ "Getopt", "Obj" ]); fails
01:41 NotFound The [ ... ] as expression gives a PMC array.
01:41 NotFound string [] initializes a ResizableStringArray
01:42 jevin left #parrot
01:42 NotFound Not a big problem, just curious.
01:43 Kulag left #parrot
01:44 jevin joined #parrot
01:45 jevin left #parrot
01:45 mro cotto, only memory and FFI instructions are missing tests. Which ones would you prefer I looked at next?
01:46 cotto mro, nothing meaningfully implements the ffi instructions yet
01:46 NotFound Funny workaround: cl = get_class(split(".", join(".",[ "Getopt", "Obj" ])));
01:46 cotto NotFound, looking at the code that implements Parrot_ns_get_namespace_keyed, I think it'd be a one-line fix to support your use case.
01:47 cotto NotFound, no
01:47 cotto ;)
01:49 mro cotto, do they (ffi ops) need more work in the spec?
01:51 cotto mro, possibly.  The main blocker is that I haven't been able to find a usable Perl ffi module.
01:52 mro okay. What about the memory ops? Can I look at those?
01:52 cotto mro, writing tests would still be helpful, though they'd be more involved.
01:52 cotto (for ffi)
01:52 NotFound I wonder if a special syntax for typed arrays will be useful: something like int[ 1, 2, 3] ; string ["a", "b"]....
01:53 cotto mro, please do.
01:56 kid51_at_dinner is now known as kid51
01:57 kid51 darwin/PPC make test PASS ba03bd8278 fr_FR.ISO8859-15
01:57 whiteknight joined #parrot
01:59 kid51 NotFound: Would we need to make similar changes in src/platform/generic/encoding.c ?
01:59 NotFound kid51: I took a look, it just hardcode ascii.
01:59 wknight8111 joined #parrot
02:01 kid51 Merci.  Or gracias.  Or something like that.
02:01 Kulag joined #parrot
02:01 mro cotto: i will. tomorrow. got to get some sleep now though.
02:02 NotFound De rien
02:03 cotto mro, 'night
02:03 cotto I'll look at your pull requests this evening.
02:03 cotto mro, what's your timezone?
02:04 NotFound Funny, I thought "de rien" was a bad translation of the spanish "de nada", but looks like is correct french.
02:06 mro cotto: CET, yours?
02:07 cotto mro, US West coast
02:08 mro cotto: roger!
02:08 mro Buy everyone. And thank you for a friendly welcome! :-)
02:09 cotto mro, thanks for the patches!
02:10 cotto aloha, clock?
02:10 aloha cotto: LAX: Sat, 19:10 PDT / CHI: Sat, 21:10 CDT / NYC: Sat, 22:10 EDT / UTC: Sun, 02:10 UTC / LON: Sun, 03:10 BST / BER: Sun, 04:10 CEST / TOK: Sun, 11:10 JST / SYD: Sun, 12:10 EST
02:13 wknight8111 soh_cah_toa++
02:13 wknight8111 I'm not sure I like being called "the infamous whiteknight"
02:13 wknight8111 left #parrot
02:14 soh_cah_toa :)
02:14 soh_cah_toa oh wait, infamous is bad fame
02:14 soh_cah_toa crap
02:15 cotto whiteknight, sorry.  I already had the statue commissioned.
02:16 soh_cah_toa i suppose that word is abused so much it's become synonymous with "famous"
02:16 kid51 like flammable and inflammable
02:16 soh_cah_toa exactly
02:17 NotFound So inflammable is something that gives bad flames?
02:18 NotFound Like a troll?
02:18 soh_cah_toa ha!
02:18 kid51 cotto: http://trac.parrot.org/parrot/ticket/1047: Would that require a deprecation cycle?
02:18 cotto let me check
02:20 cotto kid51, I don't think it does.
02:20 kid51 Thx
02:21 NotFound Spanish is cleaner: famoso - infame, not "infamoso"
02:22 kid51 cotto: Other than your gist post, have you made any progress on the plan for profiling?
02:22 cotto kid51, no.
02:22 cotto if whiteknight's free, now would be a great time to discuss that
02:23 whiteknight define "free" and "discuss"
02:23 kid51 cotto: Can you repost the link?
02:23 cotto kid51, the gist?
02:23 cotto https://gist.github.com/1063804
02:24 whiteknight what is this "quick and dirty hack" that pmichaud did?
02:24 whiteknight was that something today?
02:25 cotto whiteknight, that was something he did a month or two ago
02:25 whiteknight ok
02:25 cotto I think it printed the time a sub was entered
02:26 whiteknight I'm not thinking that a runcore is the best option
02:26 cotto whiteknight, what's your preference?
02:27 whiteknight I think a much better option is a CallContext subclass that could monitor push/pop operations
02:27 cotto interesting
02:27 whiteknight if we had that kind of interface, an HLL could map in any type they wanted and collect whatever data they want
02:28 cotto It'd be quite powerful
02:28 cotto and it wouldn't be yet another runcore
02:28 whiteknight of course, the question there is: Is CallContext easily subclassible, and are the interfaces we need to intercept encapsulated?
02:28 whiteknight and I suspect the answers are "no" and "hell no"
02:28 cotto seems to be the case
02:28 whiteknight too much of that logic is still in a half-migrated state following the CallContext refactor
02:28 cotto from PIR, at least
02:29 cotto We could still have a C subclass.
02:31 NotFound whiteknight: I've added a builtin getcontext() to winxed. It just does getinterp()["context"] for a now, but will simplify tests of a getcontext op.
02:31 Kulag left #parrot
02:31 Kulag joined #parrot
02:31 whiteknight NotFound: awesome, having that makes it easy to add in an op later
02:31 whiteknight cotto: I don't know if context push/pop operations go through vtables on CallContext
02:31 whiteknight I suspect it does not, I think push/pop might be for adding args
02:32 whiteknight I can't remember the details
02:32 NotFound I think not
02:32 whiteknight The runcore idea is fragile, especially if an HLL really tries to leverage CPS features to do crazy control flow
02:32 cotto I'm seeing a lot of worms crawling out of that can.
02:32 whiteknight it's hard to say what is a call and what is a return, or when you are leaving a context or entering it, etc
02:33 whiteknight or using exceptions for control flow between nested runcores
02:33 cotto usually you can at least tell when there's a change
02:33 whiteknight until we solve inferior runloops, we can't really use a runloop to get an accurate profiling picture
02:35 whiteknight so basically what we need is a routine to print something out to a handle when we enter and leave a context?
02:35 Drossel joined #parrot
02:35 whiteknight like "ENTER Foo", "EXIT Foo", etc
02:35 cotto Leaving is implicit
02:36 cotto printing something when there's a change is fine
02:37 Kulag left #parrot
02:41 whiteknight okay, so just "ENTER Foo"
02:41 Drossel left #parrot
02:41 whiteknight then how do you differentiate between recursively entering Foo, and returning to Foo?
02:42 NotFound I've found a problem with the Timer PMC: you can't stop a repeating Timer after its first tick, because the repeating is done by cloning it.
02:42 NotFound You stop the original, but not the active clone.
02:42 whiteknight we would need something like "ENTER <Sub Name>, <Context ID>
02:42 whiteknight "
02:42 whiteknight NotFound: timers are garbage. I'm not surprised that it's broken, I'm only surprised how badly it was designed
02:43 cotto whiteknight, this is sounding a lot like the current profiling runcore.
02:43 whiteknight see, I don't even know what the current profiling runcore does
02:45 cotto Maybe I should just make an easy way to get stripped down output from that.
02:47 NotFound Talking about CallContext, I'm not very happy with using the morph vtable to reset arguments. Will not be cleaner to use vtable set_bool, for example?
02:47 Kulag joined #parrot
02:48 cotto I'm going to put on my gloves and figure out what you're referring to.
02:48 whiteknight NotFound: me either
02:48 whiteknight morph is stupid, and the only place it is really used is for something that isn't what it's designed for
02:48 whiteknight anyway, I'm heading to bed now. It's late. We'll continue this chat in the morning
02:48 cotto 'night
02:49 whiteknight goodnight
02:49 whiteknight left #parrot
02:49 cotto I'll look into stripping down the profiling runcore.
02:49 cotto And those pull requests I keep not pulling.
02:50 kid51 left #parrot
02:52 Kulag left #parrot
03:11 Kulag joined #parrot
03:20 Kovensky left #parrot
03:30 Kovensky joined #parrot
03:46 dalek parrot/m0-prototype: 8313968 | mro++ | t/m0/integration/m0_xor.m0:
03:46 dalek parrot/m0-prototype: remove eager exits from XOR test.
03:46 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/8313968a3f
03:46 dalek parrot/m0-prototype: 712eace | mro++ | t/m0/integration/m0_ (2 files):
03:46 dalek parrot/m0-prototype: Add M0 and, or operator test.
03:46 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/712eace405
03:46 dalek parrot/m0-prototype: 253a05b | mro++ | t/m0/integration/m0_ (2 files):
03:46 dalek parrot/m0-prototype: Move old iton M0 opcode test to new convert_i_n. Fix test logic.
03:46 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/253a05b3df
03:46 dalek parrot/m0-prototype: eaa043d | mro++ | t/m0/integration/m0_ (3 files):
03:46 dalek parrot/m0-prototype: Add tests for M0 ashr, lshr, shl operators.
03:46 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/eaa043d977
03:46 dalek parrot/m0-prototype: dbad968 | cotto++ | t/m0/integration/m0_ (8 files):
03:46 dalek parrot/m0-prototype: Merge pull request #140 from martinolsen/m0-prototype
03:46 dalek parrot/m0-prototype:
03:46 dalek parrot/m0-prototype: complete math ops coverage, courtesy of mro++
03:46 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/dbad968a13
03:50 dukeleto m0 development is heating up
03:51 cotto we got us an interested student, courtesy of chromatic++'s blog post
03:51 cotto there were a couple others, but they missed me
03:52 cotto well, hacker.  not necessarily student
03:54 cotto either way, fresh blood
03:58 dukeleto cotto: what is the status of the m0 glossy?
03:58 dukeleto cotto: is it still just a gist, or does it exist in a branch somewhere?
03:59 cotto dukeleto, still just a gist
04:00 cotto dukeleto, would you like to take charge of turning it into something presentable?
04:01 cotto aloha, m0 glossy?
04:01 aloha cotto: m0 glossy is a brief self-contained glossy brochure-like introduction to M0 or https://gist.github.com/1022340 (draft)
04:03 dukeleto cotto: that could be fun. It fits in with a "visual intro to parrot"
04:04 cotto dukeleto, so it does
04:05 cotto This is going to be an expensive day.  I'm just about to book my plane for yapc::eu.
04:05 dukeleto cotto: oy vey. good time to look into frequest flier miles :)
04:06 dukeleto cotto: preferences for formats, or where the m0 glossy should live?
04:06 dukeleto cotto: in the m0-spec branch ?
04:07 cotto ironically, it looks like I'll have fewer layovers on this trip than on the yapc::na trip.
04:07 dukeleto cotto: very nice
04:07 cotto dukeleto, that's a good question.  I guess it should go somewhere in parrot.git, and if there, the m0-spec branch makes the least non-sense.
04:08 cotto dukeleto, It doesn't fit with what we typically use the repo for though.
04:08 jay Since the topic is C and PIR, can I ask a question?
04:08 cotto jay, um... permission granted.
04:09 cotto ;]
04:09 jay I got some PIR working calling c, with       libRmath = loadlib "libRmath"
04:09 cotto dukeleto, I'd almost want a separate repo under the parrot org, but I'm not sure that's a good solution.
04:09 jay in NQP, this doesn't seem to work:     my $rexp := pir::dlfunc(libRmath, "rexp", "dd");  (after the pir::loadlib("libRmath"))
04:10 jay WHen I build it isn't happy with the    pir::dlfunc(...) attempt.
04:10 jay Damn... give me a second, I might have a typo.
04:11 jay Well, I did, but it didn't make a difference.  Argh.  Still not happy.  Not critical, I have working PIR code, but I'm trying to get the hang of NQP.
04:11 dukeleto jay: it is probably dlfunc_xxx where i can't remember xxx
04:12 dukeleto jay: dlfunc_p_s_s if the args are pmc, string, string
04:12 jay my $rexp := pir::dlfunc_p_s_s($libRmath, "rexp", "dd");
04:13 dukeleto jay: actually, dlfunc_p_p_s_p
04:13 jay Hmm... is the last one the type of the return?
04:14 dukeleto jay: https://gist.github.com/1074258
04:14 dukeleto jay: run nm on libparrot.so to see all of them
04:14 dukeleto jay: yes, the pattern is funcname_arg1_arg2_arg3_return_type
04:14 dukeleto jay: and only the first letter is used for arguments and return type
04:15 dukeleto jay: p=pmc,s=string,sc=string constant, i=integer, ic=integer constant, etc...
04:15 jsut_ joined #parrot
04:15 dukeleto jay: they are unique names so multiple dispatch isn't needed to cover various function arguments
04:15 jay error:imcc:arg count mismatch: op #-1896737904 'dlfunc_p_p_s_p' needs 4 given 3
04:16 jay Got to be close, though, the error is more interesting now...  !_)
04:16 dukeleto jay: usually, dlfunc is done from PIR, then that bytecode is loaded from NQP
04:17 jay Ok.  Happy to learn the "recommended" way.  Would that be PIR to basically load all the needed functions into globals for later use?
04:17 dukeleto jay: have a look at this: https://github.com/letolabs/parrot​-libgit2/blob/master/src/git2.pir
04:18 dukeleto jay: that is actually generated code, from the tools/dev/ncidef2pir.pl tool
04:18 soh_cah_toa i thought the syntax in nqp was pir::foo__PPPS()?
04:18 soh_cah_toa or maybe i'm thinking of something else
04:19 dukeleto jay: yes, it is a double underscore
04:19 jay soh_cah_toa++   !   Compiled.
04:19 soh_cah_toa first one is return type, the rest are args
04:19 soh_cah_toa yay me
04:19 dukeleto jay: and args+function return are mostly lowercase.
04:19 soh_cah_toa actually, i don't know the difference between the uppercase/lowercase variants
04:19 jay I used upper here.  Is lower preferred?
04:20 dukeleto jay: they mean slightly different things
04:20 jsut left #parrot
04:21 dukeleto jay: which I can't remember, nor where they are documented :(
04:21 dukeleto jay: parrots function signatures are documented a bit in docs/embed.pod
04:21 fperrad joined #parrot
04:22 soh_cah_toa yes, that's where it is
04:22 soh_cah_toa also docs/embed_new.pod
04:23 dukeleto jay: this https://github.com/letolabs/parrot​-libgit2/blob/master/src/git2.nci is a file which describes external library functions arguments and return values, and then a script generates the PIR I showed you above
04:23 cotto dukeleto, https://github.com/parrot/parrot/blob/ma​ster/compilers/pct/src/PAST/Compiler.pir
04:23 dukeleto jay: if you have dozens or hundres of functions, it really shines
04:24 bubaflub dukeleto: amen.
04:24 jay Ok, thanks.
04:24 jay Then can I just     pir::$rexp__PP($arg)    or something?  That would seem too easy
04:26 soh_cah_toa i don't think so b/c the variable is $rexp not $rexp__PP
04:26 dukeleto jay: i think yes. bubaflub just wrote bindings to all of the GMP integer and RNG functions with this method
04:26 dukeleto jay: so now we can have access to GMP from any Parrot language, including NQR if you want it :)
04:27 soh_cah_toa interesting, i wonder what would happen if i did have a var like $something__PP
04:27 dukeleto soh_cah_toa: try it out and see :)
04:27 jay Yes, I glanced at that earlier.  And no, I don't quite have it yet.    This didn't work:
04:27 jay $ans := pir::$rexp__PP($arg);
04:27 dukeleto i am hacking on libgit2 bindings for parrot now because that sounds fun to me
04:27 jay Neither did leaving out the __PP
04:28 dukeleto jay: the thing after pir:: has to be a literal string, not a variable
04:28 dukeleto jay: like pir::r_function_that_i_dlfunced($arg)
04:29 dukeleto jay: also, you need something like this:
04:29 jay Really?  So the result of the pir::dlfunc isn't some sort of pointer
04:29 dukeleto jay:   set_global ['Git'], 'git_treebuilder_get', nci
04:29 dukeleto jay: and then it can be accessed through that key in that namespace, here, Git::git_treebuilder_get
04:29 dukeleto jay: dlfunc is only part of the process
04:30 jay Yikes.  None of that was required when I just did it in PIR?
04:31 dukeleto jay: no, all of this is required in PIR as well. Each function you want to access has to be dlfunc'ed, then the return value of the dlfunc needs to be stored somewhere that it can be later accessed
04:31 dukeleto jay: a key in a namespace is usually what people do, but you could make it a global as well
04:31 jay Well, I got a working example without it.  Want me to gist it?
04:31 dukeleto jay: depends if it is a language built-in or not, or on the phase of the moon
04:31 dukeleto jay: sweet! sure.
04:31 fperrad left #parrot
04:32 dukeleto jay: i guess you can directly use the return value of dlfunc for a simple script, but when you actually cook it into a language, the dlfunc is happening at startup/bootstrap time but not used until later
04:32 jay https://gist.github.com/1074268    and this was in Runtime.pm
04:33 jay basically my HLL is squaak-ish, no special addins like that treebuilder stuff.
04:33 dukeleto jay: nice!
04:33 jay Well...   but maybe not recommended?
04:34 jay Or.... given that it isn't that long, maybe I shouldn't bother with an NQP version?
04:34 dukeleto jay: meh. it means you need to "dip down" into PIR for every method you want access to, but it gets the job done
04:35 dukeleto jay: what do you mean? are you asking whether to write it in PIR or NQP?
04:35 jay Well, I've got it in PIR, but NQP is easier to read and fewer lines, right?
04:35 jay But yes, that was my question.  Does it matter, at the end of the day?
04:36 dukeleto jay: i like to stick with what I have that works and iteratively make it better
04:36 soh_cah_toa that's a good approach
04:36 dukeleto jay: what is your vision for NQR? What does it need to do or allow to be considered a success?
04:37 jay Ok... I thought that trying to get the same function also working in NQP was a good exercise... making me better.
04:37 jay NQR vision?  Interesting question.
04:37 dukeleto jay: i know those are hard questions, but I am trying to understand what NQR needs from Parrot and other things in the parrot ecosystem
04:37 cotto dukeleto++
04:38 cotto and jay++ for actually writing the thing
04:38 jay I'd consider it a roaring success if I could actually do basic data analysis with it.  I think I'll be ok on the grammer, actions, etc...  given enough time and a little help.  More than that?  Well..
04:38 Kulag left #parrot
04:38 jay I'd be interested in trying to get some graphics going.  Have a few thoughts.  Is anyone else doing graphics stuff with Parrot?
04:39 jay I'd like memory-mapped files, so I can work with massive > RAM data sets... an area I've worked in before (R/C++).
04:39 Kulag joined #parrot
04:40 jay So on goal 1, I think it's doable.  Goal 2 I just don't know yet and haven't given it much thought.  Goal 3 is probably doable and we might be able to help Parrot on that front... at least testing.
04:41 jay dukeleto: I should write up a draft plan, actually.  Good idea.
04:48 jay That's all for me, tonight.  I'll just stick with my PIR for simple calls like this for now.  Baby steps.  At least it works!
04:48 jay Thanks!  cotto++
04:48 cotto jay, happy hacking!
04:48 cotto 'night
04:48 jay dukeleto++
04:49 jay left #parrot
04:50 pmichaud is <parrot/string.h> considered part of the user-facing API?  Can HLL's safely use the macros and functions defined there?
04:51 pmichaud larger question:  I'd like to be able to get codepoints from a STRING in C
04:51 pmichaud (via an iterator, preferably)
04:54 cotto I don't know that it's explicitly covered.  It does provide a potentially useful low-level interface that doesn't look like it'd be a bad idea to expose.
04:55 cotto From my reading, it's in the gray area of support coverage.
04:55 pmichaud alternately, I could really use a fixed-width encoding of unicode strings, that works even when ICU isn't present.
04:56 pmichaud where "works" doesn't have to mean anything more than "supports basic string compare and indexing operations"
04:57 cotto you mean utf-32?
04:58 plobsing left #parrot
04:58 cotto I'm fine with either approach.  I think either way, we need to defined the status of the STRING_* macros.
04:58 pmichaud utf-32 would be fine.
04:59 pmichaud I've been thinking of redoing the regex engine and using a ResizableIntegerArray to hold the codepoints and do operations on that... but nearly all of the string operations are only defined for STRINGs
05:00 daniel-s left #parrot
05:00 cotto utf-32 sounds like it'd a lot of work
05:00 cotto *it'd be
05:00 pmichaud wouldn't be less work than the current utf8?  (to implement, I mean)
05:01 pmichaud *wouldn't it be
05:02 cotto actually, we have ucs-4
05:02 pmichaud oh, I see ucs4 now.
05:02 pmichaud Wonder how much of it works w/o ICU.
05:02 pmichaud Time to find out.  :)
05:02 daniel-s joined #parrot
05:02 cotto pmichaud, are you trying to avoid ICU as a hard dependency for Rakudo?
05:03 pmichaud I'm trying to speed up regexes.
05:03 pmichaud I'm fine with ICU as a dependency for Rakudo.
05:03 pmichaud well
05:03 pmichaud I said that wrong.
05:03 benabik ...  ucs4 != utf-32?
05:03 pmichaud I don't mind if we can't support all unicode operations when ICU isn't present.
05:04 pmichaud but not having ICU present shouldn't prevent common non-unicode-y Perl 6 programs from running.
05:04 soh_cah_toa benabik: no it is
05:04 benabik Oh, I'm too tired to be scanning IRC.  Nevermind, I go back to bed now.
05:04 soh_cah_toa :)
05:05 pmichaud earlier in Parrot's history I tried converting strings to non-utf8 to improve performance... but basic operations (including the conversion itself) would often fail if ICU wasn't present.
05:05 pmichaud However, I notice that strings have been refactored a fair bit... so it might work now :-)
05:08 pmichaud and ucs4 would have about the same memory characteristics of a ResizableIntegerArray, so that would be awesome.
05:09 pmichaud testing... so far so good!
05:10 daniel-s left #parrot
05:17 pmichaud I think I can very much work with this.  cotto++
05:20 cotto pmichaud, very glad to hear it
05:28 daniel-s joined #parrot
05:46 soh_cah_toa left #parrot
05:53 dafrito joined #parrot
05:57 logie joined #parrot
06:10 logie left #parrot
06:45 theory left #parrot
07:02 fivetonsflax joined #parrot
07:11 Eclesia joined #parrot
07:12 Eclesia hi
07:25 kthakore left #parrot
08:24 dalek rakudo/nom: 4050741 | moritz++ | / (2 files):
08:24 dalek rakudo/nom: Parcel.values, tests
08:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/405074182a
08:42 rurban_ joined #parrot
08:44 rurban left #parrot
08:45 rurban_ is now known as rurban
08:51 mj41 joined #parrot
08:53 Eclesia left #parrot
08:58 mj41 left #parrot
08:59 Eclesia joined #parrot
09:04 * mro yawns
09:04 mro 'morning!
09:05 mro cotto: thanks for the merge. do you have any comments for the changes?
09:05 mro aloha: time?
09:05 aloha mro: time is a lion, where i am a lamb.
09:05 mro lol
09:05 mro aloha: clock?
09:05 aloha mro: LAX: Sun, 02:05 PDT / CHI: Sun, 04:05 CDT / NYC: Sun, 05:05 EDT / UTC: Sun, 09:05 UTC / LON: Sun, 10:05 BST / BER: Sun, 11:05 CEST / TOK: Sun, 18:05 JST / SYD: Sun, 19:05 EST
10:41 Kulag left #parrot
10:41 Kulag joined #parrot
10:53 Eclesia hm ... somone knows what is the cause of this error :
10:53 Eclesia invoke() not implemented in class 'Packfile'
11:04 dalek nqp: dbc9e77 | jonathan++ | src/ops/nqp.ops:
11:04 dalek nqp: Add repr_change_type op, for asking the repr to do a type change on the object.
11:04 dalek nqp: review: https://github.com/perl6/nqp/commit/dbc9e77615
11:04 dalek nqp: 6ace072 | jonathan++ | src/6model/reprs/P6opaque.c:
11:04 dalek nqp: Implement change_type for P6opaque.
11:04 dalek nqp: review: https://github.com/perl6/nqp/commit/6ace072d1f
11:08 dalek rakudo/nom: ec206d6 | jonathan++ | tools/build/NQP_REVISION:
11:08 dalek rakudo/nom: Bump NQP_REVISION to get repr_change_type support.
11:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ec206d6862
11:08 dalek rakudo/nom: 6503f6b | jonathan++ | / (3 files):
11:08 dalek rakudo/nom: First sketch of mixin support.
11:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6503f6b9c0
11:08 dalek rakudo/nom: 5349d59 | jonathan++ | src/core/operators.pm:
11:08 dalek rakudo/nom: First, though basically working, implementation of does and but operators. Undertested so far - there will be bugs.
11:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5349d59ed0
11:55 NotFound Eclesia: you may be trying to use a Packfile PMC as if it were an Eval
11:58 Eclesia NotFound: I'm trying to run a small pir function from winxed : http://nopaste.snit.ch/59209
12:01 NotFound Eclesia: The PIR compreged object has two ways of working: the older way that returns an Eval PMC is to invoke it as a sub, the "compile" method is the new way that returns a Packfile... or maybe a PackfieView in the near future.
12:02 Eclesia NotFound: so is there something on this PackFile pmc to run it ?
12:04 NotFound Eclesia: supposedly it should have a get_main or main_sub method, but looks like it hasn't.
12:06 Eclesia hahaha
12:07 NotFound Eclesia: better use the Eval interface for a now: var compiled = pirCompiler(pircode); var main = compile.get:main(); main();
12:07 NotFound get_main
12:11 Eclesia NotFound: thanks it worked :)
12:18 daniel-s left #parrot
12:29 Eclesia NotFound: when I look at this doc ftp://ftp.uni-siegen.de/pub/parrot-docs/h​tml/docs/book/pir/ch04_variables.pod.html (at the bottom, topic on namespaces)  . he gives examples to get the parent namespace or all classes in the namespace. but I can't find the methods to have the list of child namespaces and globales .
12:38 NotFound Eclesia: a Namespace PMC is a hash. You can iterate over it, and check the type of each result.
12:41 NotFound But note that if there are several items with the same a name (for example, a global var and a namespace) the thing is a bit more complicated... and I don't understand it very well. See src/pmc/namespace.pmc
12:45 kid51 joined #parrot
12:46 Eclesia NotFound: thanks for all the help. I have to go ++
12:46 NotFound by
12:46 Eclesia left #parrot
12:53 Coke left #parrot
12:53 Coke joined #parrot
13:03 jay joined #parrot
13:18 daniel-s joined #parrot
14:01 jay Good morning!
14:05 fperrad joined #parrot
14:06 fperrad left #parrot
14:06 mro jay: 'Morning!
14:06 jay mro: cheers!  Happy hacking!
14:07 fperrad joined #parrot
14:29 ambs joined #parrot
15:10 dalek TT #840 closed by jkeenan++: t/op/io.t fails on win32
15:10 dalek TT #840: http://trac.parrot.org/parrot/ticket/840
15:29 JimmyZ joined #parrot
15:42 dalek TT #582 closed by jkeenan++: auto::sizes:  Complete development of maxmin probes
15:42 dalek TT #582: http://trac.parrot.org/parrot/ticket/582
15:43 plobsing joined #parrot
16:05 dalek parrot: 3db09f0 | util++ | parrotbug:
16:05 dalek parrot: Fix error message in parrotbug
16:05 dalek parrot: review: https://github.com/parrot/parrot/commit/3db09f0784
16:07 daniel-s left #parrot
16:10 davidfetter joined #parrot
16:14 kid51 left #parrot
16:15 zby_home joined #parrot
16:15 dalek parrot: 9ca83a5 | NotFound++ | src/string/encoding.c:
16:15 dalek parrot: simplify and fix the encoding search by name functions
16:15 dalek parrot: review: https://github.com/parrot/parrot/commit/9ca83a58cd
16:25 JimmyZ left #parrot
16:29 whiteknight joined #parrot
16:33 theory joined #parrot
16:36 dalek parrot: 91db889 | NotFound++ | / (2 files):
16:36 dalek parrot: add PARROT_CANNOT_RETURN_NULL to Parrot_pf_(de)serialize,
16:36 dalek parrot: to make headerizer happier
16:36 dalek parrot: review: https://github.com/parrot/parrot/commit/91db8896fb
16:42 rurban_ joined #parrot
16:44 jevin joined #parrot
16:44 rurban left #parrot
16:44 rurban_ is now known as rurban
16:47 dalek rakudo/nom: 850e5c6 | Coke++ | t/spectest.data:
16:47 dalek rakudo/nom: track more nom test status.
16:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/850e5c67e3
17:02 dalek winxed: 517ac40 | NotFound++ | winxedst (2 files):
17:02 dalek winxed: new builtin unescape
17:02 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/517ac40e65
17:14 dalek winxed: 383f500 | NotFound++ | winxedst1.winxed:
17:14 dalek winxed: new builtins trans_encoding and encoding_name in stage 1
17:14 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/383f500e7f
17:56 simcop2387_ joined #parrot
17:57 dalek website: benabik++ | GSOC 7: What is newPOST?
17:57 dalek website: http://www.parrot.org/content/gsoc-7-what-newpost
17:57 simcop2387 left #parrot
17:57 simcop2387_ is now known as simcop2387
17:58 benabik Okay, time to get my head out of "understanding code" and back into "writing code"
18:10 Kulag left #parrot
18:10 Drossel joined #parrot
18:15 whiteknight yeah, understanding the code is way overrated
18:18 jay Suppose I have a lot of dlfuncs all coming from the same library... can I do a loadlib once and put the resulting library "handle" or whatever it is into a global?
18:18 bubaflub jay: https://github.com/bubaflub/parro​t-gmp/blob/master/src/GMP/raw.pir
18:19 jay bubaflub++  Same link as last night but I was looking at something else there I think.  Thanks!
18:21 bubaflub jay: ok.  this is in PIR and is generated from a script in parrot under tools/dev/ncidef2pir.pl
18:21 bubaflub jay: i have a NCI definition file (https://github.com/bubaflub/parrot​-gmp/blob/master/src/GMP/raw.nci) and the script outputs the PIR.  pretty simple but saves me some time.
18:23 jay Sounds like what I'm trying to do.  dukeleto challenged me (well, challenged isn't quite the right word) to consider working with the GNU Scientific Library.  I figured once I could get one call working I could write a script to generate a bunch of code...
18:25 bubaflub jay: that's exactly what my project is doing - i've got a script that reads gmp.h and generates the NCI definition.  from there we've got a script in parrot that goes from NCI def -> PIR.
18:25 bubaflub jay: each header file is slightly different and GMP had a bunch of #define's i had to work around, but you could probably take my script and modify it to work with GSL
18:26 jay Excellent.  Nice to have something in the general area to look at.  I wanted to work as independenly as I could initially... I'll learn more that way, but I think I'm getting better at recognizing what I don't know and when I probably need a "best practices" bit of advice...
18:27 bubaflub jay: i'm mostly familiar with the NCI stuff, but plobsing knows everything about that sub-system.
18:29 jay I used loadlib/dlfunc in PIR successfully last night with a different shared library.  Today I'm trying to use libgsl just with one example:
18:29 jay double gsl_ran_gaussian_pdf (double x, double sigma)
18:29 jay gsl_ran_gaussian_pdf = dlfunc libgsl, "gsl_ran_gaussian_pdf", "ddd"
18:29 jay gives me an error when I run it:
18:29 jay No NCI thunk available for signature '[ 4, 4, 4 ]'
18:30 bubaflub jay: 1, 2, 3 and 4 as NCI signatures have been deprecated
18:30 bubaflub long story short, try just using d
18:31 jay I didn't use 4.  I used "ddd" (see above)?
18:31 bubaflub hmmmm
18:31 bubaflub that is strange
18:31 jay I'm in 3.3.0, did something change around then perhaps?
18:33 bubaflub jay: not sure.  can you gist or nopaste exactly what you are using?  i can take a look at it.
18:33 jay Sure...
18:34 jay bubaflub: https://gist.github.com/1074811
18:35 bluescreen left #parrot
18:36 bubaflub jay: hmmm, that looks right.
18:36 plobsing that [4,4,4] is the internal representation of the NCI signature 'ddd'. we've since added pretty-printing for those internal representations so on 3.5, it should look like 'double (double,double)'.
18:37 jay Sounds like I need to move up to HEAD or 3.5 then?
18:37 plobsing that won't fix your problem, it'll just be easier to parse the error message
18:37 plobsing what you really need is an NCI thunk to provide the Parrot/C interface for the call you are trying to make
18:38 plobsing you can do that by compiling Parrot with libffi, providing a dynamic thunk library, or rebuilding parrot with additional core thunks.
18:38 jay bubaflub: is this (what plobsing just said) what you are doing with GMP?
18:38 plobsing the easiest solution is to have libffi available
18:39 bubaflub jay: yes.  currently i have libffi installed but eventually i'll generate thunks so libffi isn't needed
18:39 bubaflub jay: basically, not every possible combination of signatures is currently covered.  either generate a thunk (using parrot_nci_thunk_gen) or use libffi.
18:40 jay Ok, let me go back to the drawing board.  Thanks for the pointers...
18:41 bubaflub jay: in other news, GSL also has the same documentation format (textinfo) so there is a change that the scripts i use for GMP will work with minimal conversion
18:42 jay Cool.  One other question: suppose I wanted to put a copy of libgsl.so in a "good" place so it can be found without the user having to configure LD_LIBRARY_PATH.  Where is the right place to do this?
18:45 bubaflub jay: i'm not entirely sure; i'm on Mac OS X and i've got stuff in weird places
18:45 plobsing from dlopen(3) - /lib and /usr/lib are the only places searched dynamically for shared libraries
18:46 moritz cat /etc/ld.so.conf
18:46 plobsing you can, however, put the libraries in many other places (eg: /usr/local/lib) and run ldconfig to update the shared library cache
18:47 jay Ok.  No special parrot place or linker options that would just take care of it... it would need root permissions to put in a sensible place then?
18:49 plobsing sort of
18:49 jay lol  Np. I'm happy to leave it for now.  Easy to tweak later.
18:50 plobsing you can put it anywhere, so long as the path used to load the library contains a path separator (/)
18:50 plobsing shared library behaviour is complicated and crufty
18:50 jay crufty... nice!
18:54 NotFound And shared library dl loaded is even funnier.
18:59 bubaflub plobsing: while you're here - is there an example of somewhere that uses parrot_nci_thunk_gen and loads in those libraries?
18:59 bubaflub s/libraries/thunks/g
18:59 plobsing the opengl bindings do that
19:02 plobsing so you'll likely want to look at runtime/parrot/library/OpenGL.pir, and sections of Parrot's makefile concerning 'glut_nci_thunks'
19:03 jay Ok...  ( taking notes )
19:04 jay I just tested my libgsl with standalone C code and it works.  Sanity check.
19:11 bubaflub plobsing: ok, i think i get it.  i give it a slightly different NCI definition file, use nci_thunk_gen with --loader-name and generate the C.  compile the C into a library, and then load that library and call whatever function name i specified in --loader-name.
19:11 GodFather joined #parrot
19:12 GodFather left #parrot
19:13 cotto ~~
19:13 dngor left #parrot
19:16 dngor joined #parrot
19:16 NotFound whiteknight: ping
19:25 mro cotto: oh, hi!
19:27 mro I was just writing you a mail describing my latest changes... Is it okay I send it to your github address?
19:27 benabik left #parrot
19:28 cotto mro, sure.  Everything ends up at the same place anyway.
19:28 benabik joined #parrot
19:29 mro cotto: okay. I'm heading out now. Have a nice day!
19:29 cotto mro, catch you later
19:30 Eclesia joined #parrot
19:30 cotto thanks for the feedback
19:30 * Eclesia back
19:30 davidfetter wb!
19:35 plobsing bubaflub: IIRC, there is some magic so that if you do not provide a --loader-name, it picks a special name for the loader and you don't have to call it (parrot calls it automatically as part of the library load)
19:35 mro left #parrot
19:36 Coke left #parrot
19:37 Coke joined #parrot
19:38 dukeleto ~~
19:41 bubaflub plobsing: ok.  so maybe just the --dynext param needed then?
19:42 benabik pmichaud: You added PAST::Node.signature().  Is anything using it, or is it just for the future?
19:42 plobsing bubaflub: yes, the dynext option is required
19:43 jnthn__ benabik: We're using it in the nom branch of Rakudo.
19:43 jnthn__ Maybe in nqp too
19:43 bluescreen joined #parrot
19:45 benabik jnthn__: I didn't see it in NQP.  I'll poke around in nom.  Guess I should try building the whole stack on my branch and watch for explosions.
19:45 Eclesia get_attr_str() not implemented in class 'NativePCCMethod' <-- ?
19:46 Coke left #parrot
19:46 Coke joined #parrot
19:54 Coke left #parrot
19:54 Coke joined #parrot
20:00 Eclesia hm... printing the full namespace tree was not as usefull as I thouht : ftp://ftp-developpez.com/jsorel/temp/ns.txt
20:00 Limbic_Region joined #parrot
20:01 * Eclesia wondering, what are those NativePCCMethod
20:03 NotFound Eclesia: the methods defined in the .pmc files
20:09 dalek rakudo/nom: cb99254 | moritz++ | / (3 files):
20:09 dalek rakudo/nom: implement and test .ords, &ords()
20:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb9925401d
20:12 Eclesia NotFound: changing subject, I test the opengl. even with glut and mesa he still skip the module :/
20:12 jay ping bubaflub or plubsing
20:12 bubaflub jay: pong
20:12 NotFound Eclesia: what platform?
20:12 Eclesia NotFound: linux x64
20:12 NotFound Eclesia: distro?
20:12 Eclesia mint
20:12 jay bubaflub earlier referenced a location "s/liibraries/thunks/g" for an example of use of parrot_nci_think_gen.... can you help be find that location?
20:13 Eclesia NotFound: a derivate of ubuntu
20:13 bubaflub jay: when you build or install parrot you'll get the script parrot_nci_thunk_gen (right in the root and placed into the path)
20:13 NotFound Eclesia: Do you have the -dev packages installed?
20:14 bubaflub jay: as for an example, plobsing mentioned OpenGL which is at runtime/parrot/library/OpenGL.pir
20:14 jay Oh, ok.  I do have that comment, I'll look at that then.  Thx.
20:14 bubaflub jay: you can also look at config/gen/makefile/root.in ~ line 2970 to see how all this fits together
20:15 bubaflub jay: what i understand is that you have a slightly different NCI definition file that contains all your signatures that you'll want.  parrot_nci_thunk_gen turns that nci file into a C file.  compile that C file into a library and then load it when you need it.
20:15 jay bubaflub++  good memory on that line reference.
20:15 bubaflub jay: heh, i still have a bunch of Vim windows open
20:15 Eclesia NotFound: glutgt3-dev, libglut3-dev, libglut, libglu1-mesa-dev
20:17 NotFound Eclesia: try this: perl Configure.pl --verbose-step=auto::opengl
20:20 Eclesia NotFound: http://nopaste.snit.ch/59341
20:20 Eclesia looks like he doesn't know 'verbose'
20:21 NotFound Eclesia: Warning: Building a shared parrot library may conflict with your previously-installed /usr/local/lib/libparrot.so
20:22 NotFound Probably unrelated, but anything can fail in that situation.
20:23 NotFound You can use --prefix=/any/other/dir for a test
20:23 dalek TT #561 closed by cotto++: What are valid characteristics for 'inspect_str' vtable?
20:23 dalek TT #561: http://trac.parrot.org/parrot/ticket/561
20:25 Eclesia NotFound: ... have to go sorry :/ . thanks for the help
20:25 Eclesia left #parrot
20:25 NotFound cotto: Now that I think about it, perhaps a sane Default for inspect_str is to return PMCNULL
20:26 whiteknight well, it's a semipredicate problem. There's no difference if there is no item by that name, or if the item contains null
20:27 NotFound Item?
20:28 NotFound It you want a item that can contain null not null, you have get_attr_str
20:29 NotFound I don't expect that something blows in my face just for taking a look, i think inspect should be like that.
20:33 mj41 joined #parrot
20:42 dalek rakudo/nom: cd4801e | moritz++ | LHF.markdown:
20:42 dalek rakudo/nom: remove ords() from LHF
20:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cd4801ea67
20:44 cotto NotFound, first I'd like to see a use case.  I'm fine with using PMCNULL to indicate that an attribute doesn't exist, but I don't want to have us write code that's not going to get used.
20:44 whiteknight what really bothers me is the relationship between find_method and can, ops and vtables
20:44 davidfetter left #parrot
20:45 whiteknight find_method vtable returns pmcnull, but find_method op throws an exception
20:45 NotFound cotto: what Eclesia was doing, inspecting things in general
20:46 whiteknight Austin Hastings was doing something similar, and ran into a bunch of problems with _dumper, if I recall correctly
20:47 cotto whiteknight, that is odd
20:47 cotto NotFound, wfm
20:48 NotFound whiteknight: people want better to get a meaningful exception rather than a bare 'null pmc access'
20:48 whiteknight NotFound: so what are you suggesting?
20:50 NotFound whiteknight: one posibility is to have two versions of each thing, get_ and find_, get throws and find_ return null. The other is the old idea of a Failure PMC
20:50 whiteknight NotFound: Failure PMC? In addition to Null and Undef?
20:51 NotFound whiteknight: a variant of Undef that throws an stored message or full exception if used for any other thing than checking it.
20:51 whiteknight Okay, so Null, but with a user-configurable message?
20:51 NotFound yeah
20:51 whiteknight Null isn't a singleton anymore, I don't think. That should be easy to hack together
20:52 NotFound Rakudo uses (or used) soething like that.
20:52 cotto NotFound, I don't like get_ and find_.  What's wrong with always returning PMCNULL when a method isn't found?
20:53 NotFound cotto: People complaints. They want a meaningful error message without having to check all values.
20:53 cotto laziness is a good argument
20:53 NotFound In fact, several things that used to return null were changed because of that.
20:53 cotto For M0 I'd be more opposed, but we already have a boatload of PIR ops.
20:53 NotFound If we change back, we risk to walk in circles.
20:54 whiteknight most vtables should return PMCNULL if a value isn't found. A sugar layer can detect that and throw a custom error message
20:54 whiteknight Rosella does a lot of that already
20:55 fivetonsflax hello cotto
20:56 cotto hi fivetonsflax
20:56 whiteknight What we need to do is define what exactly are the error conditions for each vtable, so we can detect errors
20:56 whiteknight find_method already returns pmcnull, and I think the find_method op should do the same. This obviates the need for can vtable and can opcode
20:56 whiteknight or, the opcode can stay, but the vtable can go
20:56 fivetonsflax I read chromatic's call for volunteers the other day.
20:56 fivetonsflax for Lorito
20:57 fivetonsflax still needed?
20:57 tadzik sure!
20:57 cotto fivetonsflax, I need to think about how to put you to work.  How's your C and Perl 5?
20:57 whiteknight fivetonsflax: volunteers are always needed!
20:58 fivetonsflax I am literate in C but don't program in it often.
20:58 fivetonsflax Perl 5, I program in almost every day.
20:59 cotto ok.  We have a complete-ish Perl 5 prototype of the M0 VM and a less complete C implementation.
20:59 cotto A good starting place would be the m0 spec.
20:59 cotto aloha, m0 spec?
20:59 aloha cotto: m0 spec is docs/pdds/drafts/pdd32-m0.pod in the m0-spec branch or https://github.com/parrot/parrot/blob​/m0-spec/docs/pdds/draft/pdd32_m0.pod
20:59 NotFound whiteknight: in the case of find_method I agree, but be ready for some complaint.
21:00 whiteknight I had a ticket somewhere to deprecate can vtable
21:00 cotto indeed.  That kind of change needs to be run by pmichaud et al.
21:00 soh_cah_toa joined #parrot
21:00 whiteknight inspect_str and get_attr_str, should they return pmcnull or throw an exception?
21:00 cotto hio soh_cah_toa
21:00 soh_cah_toa cotto: hey
21:01 whiteknight get_attr_str especially, we need to differentiate between a key that contains a value, and a key that does not exist
21:01 cotto semipredicate problem again
21:01 NotFound Attributes can have or not have slot, is an important difference that justifies the exception.
21:02 lichtkind joined #parrot
21:02 whiteknight okay, so get_attr_str behavior shouldn't change. inspect_str can return PMCNULL on failure
21:02 NotFound And if some PMC does not make such difference, its override can do what it want.
21:02 whiteknight and get_prop does that too
21:03 whiteknight right, we're only talking about core types
21:03 whiteknight we need to set precident
21:03 fivetonsflax ok cotto, I have begun reading the spec, have to run now but will ping you when I have finished.  what's your preferred mode of contact?
21:03 jnthn__ It's probably too language specific to decide.
21:03 cotto fivetonsflax, I'm usually here but email is fine too.
21:03 jnthn__ For attributes, at least.
21:04 fivetonsflax ok, I found an email address for you on github.  thanks.  ttyl.
21:04 jnthn__ Some languages want you to pre-declare your object attributes up front and it's a compile time failure (and thus should never make it to runtime, and it's fatal if that happens) to access an undeclared attribute.
21:04 NotFound jnthn__: a language can override, too. Just need to wrap the access for foreign objects in a thin layer that catches the exception
21:04 jnthn__ Others put no such constraints on it.
21:04 cotto fivetonsflax, please take notes of what confuses you, if anything
21:05 whiteknight jnthn__: But we need to make some kind of decision with respect to core types
21:05 whiteknight the types we ship with core parrot should be consistent
21:05 fivetonsflax will do.  I have no compiler experience so will need either simple tasks, or a bit of handholding as I get up to speed.
21:05 fperrad left #parrot
21:05 cotto fivetonsflax, good to know.  If you have the time to answer, what's your interest in M0/Lorito?
21:06 NotFound We can't not decide, they must do something.
21:06 jnthn__ whiteknight: If you integrate 6model it out of the box provides a couple of reprs that have different semantics there, because they're aimed at different languages.
21:07 fivetonsflax cotto: I use and like Perl 5, am curious about Perl 6, and when chromatic posted a call for volunteers, no experience needed, I thought it would be a fun way to get involved.
21:07 jnthn__ whiteknight: I can see how it's an interesting question when Parrot does have a core Class type that it expects all languages to use. I'm just saying that it's the wrong one once you have an objects framework rather than a particular objects implementation.
21:07 whiteknight jnthn__: okay, so the repr will indicate the behavior? And a language-neutral library should check which repr is used first, before trying to decide how to catch and handle an error condition?
21:08 fivetonsflax if there's some other area where I'd be more useful, I am not at all married to the idea of working on M0/Lorito.
21:08 whiteknight jnthn__: but look at something like CallContext. When I do CallContext.inspect_str("CRAPOLA"), what happens?
21:08 whiteknight or Integer.get_attr_str("FOOBARDOESNTEXIST")
21:08 jnthn__ whiteknight: I was talking specifically about attributes here.
21:08 jnthn__ whiteknight: That's whatever the PMC repr decides to do, I guess. :)
21:09 cotto fivetonsflax, it's at an interesting stage.  Some of it is pretty well-defined, but we're actively figuring out other aspects of it, especially what the language that compiles down to M0 will look like.
21:09 NotFound fivetonsflax: all parrot areas need work
21:09 whiteknight That may just be the longterm solution. Leave things the way they are now until 6model comes in and unifies everything
21:09 jnthn__ whiteknight: I'd hope that most people will be interoping with other language's objects by calling method son them rather than attribute access though :)
21:10 whiteknight jnthn__: lots of languages do allow attribute access without explicitly going through a dispatcher
21:10 jnthn__ whiteknight: Sure, it happens.
21:10 NotFound jnthn__: sometimes you need to access low level things, and that usually means using the core PMCs.
21:10 jnthn__ whiteknight: We'll need to work out the HLL interface for that. (more)
21:11 jnthn__ Part of the problem is that some languages just don't expect that their attributes can be poked from the outside.
21:11 whiteknight jnthn__: on a side note, does Rakudo make use of the can vtable? I want to deprecate it, since it seems to always fallback to find_method
21:11 jnthn__ whiteknight: It uses the can op, but I think that uses find_method directly...
21:11 whiteknight yeah, that's what I'm saying. can op calls can vtable which always (that I have seen) calls find_method vtable
21:12 ambs left #parrot
21:12 NotFound In fact we can delete Object can, it does the same as Default
21:13 whiteknight right
21:13 fivetonsflax OK, well -- I guess I'll finish reading that specification, see if I can think of some questions to answer, and we'll take it from there and see what happens, unless you have a better idea.
21:13 fivetonsflax s/answer/ask/
21:14 NotFound Now that I think about it, there is a big difference: find_method is overridable
21:14 whiteknight right. can always falls back to find_method
21:14 whiteknight I forgot that it couldn't be overridden
21:14 jnthn__ whiteknight: Anyway, my impression is we won't miss vtable can.
21:15 NotFound And that difference means that can has no useful purpose.
21:15 whiteknight that's what I wanted to hear :)
21:15 cotto fivetonsflax, sounds like a plan.
21:15 fivetonsflax great.  ciao for real now.
21:15 fivetonsflax left #parrot
21:15 whiteknight TT #2042
21:15 NotFound If it does the same and is not overridable, isn't useful.
21:17 whiteknight cotto: While you're hear and present during this conversation, can you take a look at TT #2042? A greenlight before the release would be awesome
21:18 cotto whiteknight, sure
21:18 whiteknight thanks
21:18 cotto whiteknight, I already did
21:18 cotto apparently
21:19 cotto I'm glad trac remembers.
21:23 PacoLinux left #parrot
21:24 zby_home left #parrot
21:28 Limbic_Region left #parrot
21:32 dalek rakudo/podparser: 076e348 | tadzik++ | / (3 files):
21:32 dalek rakudo/podparser: Move pod related metod from Actions.pm to Pod.pm
21:32 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/076e348fe7
21:32 dalek rakudo/podparser: 8787be2 | tadzik++ | / (6 files):
21:32 dalek rakudo/podparser: Parse tables, import 07-tables.t
21:32 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/8787be284f
21:39 mj41 left #parrot
21:42 Psyche^ joined #parrot
21:44 soh_cah_toa omg, it works
21:44 soh_cah_toa i can list source code now
21:44 soh_cah_toa \o/
21:47 cotto soh_cah_toa, sounds exciting
21:47 soh_cah_toa it finally does something useful
21:47 Patterner left #parrot
21:47 Psyche^ is now known as Patterner
21:48 soh_cah_toa though i still get a backtrace when using the "quit" command. i have no idea why
21:48 soh_cah_toa it started happening after the merge into master
21:50 dafrito left #parrot
21:53 benabik Huh.  I'm getting a failure in t/dynpmc/os.t on Darwin/x86
21:53 * benabik is merging master into his branch.
21:53 cotto soh_cah_toa, do you get any complaints about incompatible versions of core_ops?
21:53 soh_cah_toa cotto: no. i did at first after the merge. but i reinstalled 3.5.0 and it went away
21:54 soh_cah_toa from a clean repo too
21:54 cotto interesting
21:55 soh_cah_toa yeah, there was a bunch of weird stuff happening after merging
21:55 bubaflub cotto: i got that problem when i had some PBC compiled from 3.4 but upgraded parrot to 3.5 and tried to run; i had to re-compile to PBC
21:55 cotto soh_cah_toa, I was using an old pbc file.  my mistake
21:55 cotto bubaflub, yup
21:56 bubaflub cotto: took me a looooooooong time to figure that one out
21:56 soh_cah_toa next to imcc's "syntax error somewhere", it's one of the most annoying errors generated by parrot
21:57 soh_cah_toa i always thought that was weird considering there's only one .pbc format. i would figure it would only fail if the new release generated a new bytecode format
21:58 pmichaud 19:42 <benabik> pmichaud: You added PAST::Node.signature().  Is anything using it, or is it just for the future?
21:58 pmichaud benabik: nom uses it today.
21:58 cotto If only someone could fix it.
21:59 benabik pmichaud: So jnthn__ said.  I'll test my version against it.  Do you know off the top of your head where?  There are an awful lot of signature\( in nom.
21:59 soh_cah_toa i suppose i could poke around a bit
21:59 pmichaud it's used for the wrap_return part in src/Perl6/Actions.pm
21:59 pmichaud although I expect we'll use it in many places quite soon
22:00 benabik Thanks, pmichaud++
22:00 benabik (and jnthn__++ too)
22:00 pmichaud line 3500.
22:01 cotto soh_cah_toa, I'm working on it.
22:01 soh_cah_toa oh, ok
22:01 pmichaud afk, dinner
22:03 benabik D'oh!  `:signature(`!  I kept looking for .signature.
22:13 benabik And a rebuild took care of the error.  Bah.
22:19 cotto soh_cah_toa, how does this strike you?
22:19 cotto Incompatible versions of `core_ops' oplib, possibly due to loading bytecode generated by an old version of Parrot. Found 3.2.0 but loaded 3.5.0
22:19 soh_cah_toa weird
22:20 cotto soh_cah_toa, I'm asking how you feel about the error message.
22:20 soh_cah_toa hmm...
22:21 benabik Feels like an improvement to me.  At least points to reason for error.
22:21 soh_cah_toa yeah, i think it's a little more verbose
22:22 soh_cah_toa actually, what does the old error look like?
22:22 cotto I can make it a lot more verbose.  The question is whether it's better.
22:22 cotto soh_cah_toa, it didn't give a reason
22:23 cotto ", possibly due to loading bytecode generated by an old version of Parrot" is the new part
22:23 soh_cah_toa really? i'm almost positive i've seen it w/ the version number
22:23 soh_cah_toa eh, whatever
22:24 soh_cah_toa oh, new part. whoops
22:24 soh_cah_toa then yes, that's definitely an improvement
22:28 soh_cah_toa yeah, i can't think of a way to be any more clear. it's pretty obvious. good
22:28 soh_cah_toa though my problem was why 3.5.0 can't load bytecode from 3.2.0 (in this case) b/c it's still the same version of bytecode: format 1
22:32 dalek winxed: ff01774 | NotFound++ | winxedst1.winxed:
22:32 dalek winxed: change the bultin lookup:
22:32 dalek winxed: They are now stored in a namespace, with an implicit using
22:32 dalek winxed: of that namespace at the root, and are looked up the same
22:32 dalek winxed: way as functions.
22:32 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/ff0177423c
22:32 soh_cah_toa in src/packfile/api.c, i think it would make more sense to check the bytecode format rather than the major/minor version of parrot
22:33 bubaflub left #parrot
22:33 cotto The way we deal with bytecode compatibility isn't amazing.  We have some structures in place to define version numbers, but the overall plan isn't strong.
22:36 soh_cah_toa so even though both version 1.1 and 1.2 uses format 1, there's no guarantee that the bytecode is actually the same?
22:36 dalek parrot: 324de9f | cotto++ | src/packfile/segments.c:
22:36 dalek parrot: make bytecode incompatibility message more helpful
22:36 cotto correct
22:36 dalek parrot: review: https://github.com/parrot/parrot/commit/324de9fe5a
22:36 soh_cah_toa well, then that probably needs improvement
22:36 dalek winxed: d68598c | NotFound++ | pir/winxed_compiler.pir:
22:36 dalek winxed: update installable compiler
22:36 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/d68598cc7b
22:36 benabik soh_cah_toa: More that there are other version numbers.  It's PBC format 1, but different op versions.
22:37 benabik It's like "still ELF, but different glibc version"
22:37 soh_cah_toa maybe we need revision/patch numbers in bytecode format: format 1.x.y
22:37 soh_cah_toa or something like that
22:47 cotto soh_cah_toa, part of the problem is that Parrot_x_exit never returns, so anything after it is dead code.
22:50 logie joined #parrot
22:57 dalek rakudo/nom: 62c04ce | jonathan++ | / (3 files):
22:57 dalek rakudo/nom: Start to sketch out how dispatchers could look for supporting nextsame et al.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/62c04cea60
22:57 dalek rakudo/nom: b02654b | jonathan++ | src/ops/perl6.ops:
22:57 dalek rakudo/nom: Some ops related to dispatchers.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b02654b549
22:57 dalek rakudo/nom: 0cd9e67 | jonathan++ | src/Perl6/Actions.pm:
22:57 dalek rakudo/nom: multis and methods get a slot for a dispatcher, which just contains a type object; we'll vivify it on demand to create a real dispatcher if nextsame et al are used.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0cd9e67b7c
22:57 dalek rakudo/nom: 0ecf393 | jonathan++ | src/ops/perl6.ops:
22:57 dalek rakudo/nom: Toss some dead code.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0ecf3939ad
22:57 dalek rakudo/nom: 0373976 | jonathan++ | src/ops/perl6.ops:
22:57 dalek rakudo/nom: First cut of op for finding a dispatcher (doesn't try to consider exhaustedness or any such stuff yet, though).
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/037397630d
22:57 dalek rakudo/nom: db2ce31 | jonathan++ | src/ops/perl6.ops:
22:57 dalek rakudo/nom: Couple of corrections to find_dispatcher op.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/db2ce316bc
22:57 dalek rakudo/nom: 3209cd1 | jonathan++ | src/Perl6/Metamodel/Dispatchers.pm:
22:57 dalek rakudo/nom: Refactor dispatchers; introduce a common case to factor out a bunch of stuff they'll probably all share.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3209cd1aec
22:57 dalek rakudo/nom: 4bc1ac3 | jonathan++ | src/core/ (2 files):
22:57 dalek rakudo/nom: First cut implementation of callwith. Probably not perfect, but essentially works.
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4bc1ac3983
23:01 whiteknight All tests pass on my machine. All PLA and Rosella tests are working fine too
23:05 NotFound left #parrot
23:05 NotFound joined #parrot
23:09 logie left #parrot
23:10 jay ping bubaflub or plobsing
23:12 whiteknight jay: I got your email, sorry I haven't had much time to reply yet
23:13 jay np -- I know you guys are busy and I've kept busy on other stuff.  Whenever you come up for air...
23:13 jay does the 'msg' utility support two receivers?
23:16 whiteknight what msg utility?
23:16 jay I see messages to individuals, and aloha says it will deliver the message?
23:16 whiteknight oh, that. No, it's single receiver
23:16 whiteknight msg jay test
23:16 aloha OK. I'll deliver the message.
23:17 jay pong?
23:17 jay msg
23:17 jay Maybe it is delivered at login?
23:19 cotto jay, it's delivered when the recipient says something
23:20 jay msg whiteknight or maybe not
23:20 aloha OK. I'll deliver the message.
23:20 jay Ah: aloha's message deliver seems to be different from the slash msg in IRC docs.
23:21 jay msg bubaflub I got a simpler function call to libgsl working, so the thunk issue was definitely due to the complex signature, not something silly.
23:21 aloha OK. I'll deliver the message.
23:21 jay msg bubaflub Thanks for the tips, and I'll look more at your stuff
23:21 aloha OK. I'll deliver the message.
23:22 sorear /msg jay FOO   sends a message to one recepient immediately
23:22 sorear /msg #parrot FOO    sends a message to an entire channel
23:22 sorear most IRC clients have a concept of a "current window", which is a user or channel that receives unprefixed messages
23:23 jay It look like regular messages to me, sorear.  I must have a plain-vanilla client (chat on Linux).
23:26 sorear msg jay FOO sends a message to #parrot, which is then received by "aloha", which stores the message until it can be delivered
23:26 aloha OK. I'll deliver the message.
23:27 jay sorear++   I'm behind the curve in many ways.
23:34 Drossel left #parrot
23:35 Kulag joined #parrot
23:39 dalek winxed: 6c1258a | NotFound++ | winxedst1.winxed:
23:39 dalek winxed: change the lookup for method-like calls to allow access to builtins
23:39 dalek winxed: as Winxed_Builtins.name(...) when they are overriden
23:39 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/6c1258a8e5
23:50 Kulag left #parrot
23:50 Kulag joined #parrot

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

Parrot | source cross referenced