Camelia, the Perl 6 bug

IRC log for #parrot, 2011-07-15

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 WOW!  Cripes.  Wasted hours.  Actually, I think one of my google searches got me to part of that, but I obviously didn't realize there was more and didn't bookmark it.
00:01 jay NotFound++ thanks for that.
00:01 NotFound jay: winxed is fairly simple, it has only the type corresponding to its pir counterparts: int, float, string, var.
00:02 NotFound And the classes available are the PMC and classes that core parrot and its libraries provide.
00:02 jay Right... got that.  I was getting into classes and starting to hit the wall.  You gave me class MyInteger : ['Integer'] {  } and I was trying to go from there.  I tried class MyBoolean : ['Boolean'] {  }
00:02 jay ...and thus ran into this issue with Boolean back in PIR, not getting it.  Method to my madness.
00:04 dalek parrot: 3e3ffda | jkeenan++ | t/configure/035-step.t:
00:04 dalek parrot: Start to provide better test messages.
00:04 dalek parrot: review: https://github.com/parrot/parrot/commit/3e3ffda284
00:04 NotFound Inheriting from PMCs is possible, but does not always works well.
00:09 NotFound http://www.h-online.com/open/news/item/Hurd-Progr​esses-Debian-GNU-Hurd-by-end-of-2012-1279253.html
00:09 NotFound After Duke Nukem Forever got released, all is posible.
00:10 Kulag joined #parrot
00:10 bubaflub NotFound: do you have an example of Winxed using :slurpy stuff?
00:11 bubaflub NotFound: or i guess i could just pack it into an array first...
00:11 Drossel left #parrot
00:13 NotFound bubaflub: is used in the compiler
00:14 bubaflub NotFound: great, thanks.
00:14 NotFound And in examples/httpserver.winxed
00:17 NotFound In the compiler, the print and say methods in Emiter
00:18 NotFound Emit, I mean
00:19 Kulag left #parrot
00:19 Kulag joined #parrot
00:20 bubaflub NotFound: i'm having a problem in Winxed where i'm trying to concatenate strings but they are being interpreted as integers or something else (and getting stringified to 0) - anyway i can force strings?
00:20 bubaflub i'd rather not cast everything as a string before adding
00:21 jay bubaflub there is join() according to whiteknights stuff!
00:21 bubaflub jay: nice.  jay++
00:21 jay lol
00:22 jay I was browsing the list on http://whiteknight.github.com/Ro​sella/winxed/syntaxandtypes.html
00:23 NotFound bubaflub: string(whatever)
00:23 bubaflub NotFound: ok, thanks.
00:24 NotFound bubaflub: the problem is that + means concatenation only if both operands are known to be strings.
00:24 NotFound Known at compile time.
00:24 jay Coroutines: wow.  Interesting.
00:25 NotFound join is also useful, yes,
00:26 logie left #parrot
00:26 NotFound Specially when there are several mixed typed things to concatenate: join("", [ list of things ]);
00:27 daniel-s joined #parrot
00:28 Kulag left #parrot
00:29 Kulag joined #parrot
00:35 bubaflub NotFound: great, got it to work.  i used join for building up command line arguments in my setup.winxed
00:39 lucian left #parrot
00:39 bubaflub NotFound: another Winxed question - can i do get/set_global?  i don't want to getinterp()[IGLOBALS_CONFIG_HASH]; everytime i want to look up a config key in my setup.winxed
00:40 Kulag left #parrot
00:40 darbelo left #parrot
00:41 NotFound bubaflub: you can use pirops to get/set globals, or use my favourite trick: function getsomething() { var something = .....; for (;;) yield something; }
00:42 bubaflub NotFound: that is a neat trick.  a bit opaque but awesome.
00:43 Kulag joined #parrot
00:44 bubaflub NotFound: can i do a get_global and assignment in one line?  i'm trying var config = ${ function() { return get_global 'config' } }; and that doesn't work
00:46 NotFound bubaflub: What are you tring to do, use the get_global op?
00:47 bubaflub NotFound: yeah.  i have a function to look up something in the config hash.  i don't think it'd be great to call getinterp() every time i look up; rather grab the config hash once and stash it.
00:50 NotFound bubaflub: So you want config to be a function that just return the config hash, or to get a item from that hash?
00:50 bubaflub NotFound: the item from that hash
00:50 bubaflub NotFound: like  _config('has_libffi')
00:51 bubaflub so in my function _config() i don't think i should getinterp() every time, right?
00:51 Kulag left #parrot
00:51 Kulag joined #parrot
00:52 NotFound bubaflub: that should do it: var config = function(string key) { var cfgh; ${ get_global cfgh, "config" }; return cfgh[key]; }
00:52 bubaflub NotFound: great, thanks.
00:53 dalek nqp: 46693c7 | pmichaud++ | src/ops/nqp.ops:
00:53 dalek nqp: Fix bug arising from C operator precedence thinko.
00:53 dalek nqp: review: https://github.com/perl6/nqp/commit/46693c720d
00:55 NotFound bubaflub: the getinterp builtin genertates just a getinterp op, is cheap.
00:55 bubaflub NotFound: ok; i figured it might be some premature optimization
00:56 NotFound And getting the hash from the interpreter should not be more expensive than getting a global.
00:58 dalek parrot-gmp: 0a99c90 | bubaflub++ | setup.winxed:
00:58 dalek parrot-gmp: update setup.winxed:
00:58 dalek parrot-gmp:
00:58 dalek parrot-gmp: use parrot_nci_thunk_gen
00:58 dalek parrot-gmp: build NCI thunks to shared libraries
00:58 dalek parrot-gmp: refactor a bit of building and system commands
00:58 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/0a99c90369
00:58 dalek parrot-gmp: 53db139 | bubaflub++ | .gitignore:
00:58 dalek parrot-gmp: update .gitignore; add built thunks
00:58 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/53db13912e
00:58 dalek parrot-gmp: 02ed89c | bubaflub++ | src/GMP/ (3 files):
00:58 dalek parrot-gmp: update generated PIR from latest Parrot/Winxed combo
00:58 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/02ed89c8c1
00:58 NotFound Anyway, a setup is not critical in speed at all, so write in the cleaner way without worrying about that.
00:59 bubaflub NotFound: agreed.
00:59 woosley joined #parrot
01:00 kid51 is now known as kid51_at_dinner
01:00 dalek parrot: 5c26bb7 | jkeenan++ | lib/Parrot/Test.pm:
01:00 dalek parrot: Provide better diagnostic messages on failures to open().
01:00 dalek parrot: review: https://github.com/parrot/parrot/commit/5c26bb7596
01:02 dalek rakudo/nom: 196eb09 | pmichaud++ | tools/build/NQP_REVISION:
01:02 dalek rakudo/nom: Bump NQP_REVISION to get radix fix.
01:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/196eb095cf
01:02 NotFound AFK
01:06 jawnsy joined #parrot
01:07 jawnsy I just read chromatic's blog about Parrot ("Less Magic, Less C, A Faster Parrot")
01:07 jawnsy it leaves me a bit concerned that Parrot sounds an awful lot like Java :-/
01:08 dalek parrot/m0-prototype: 069285a | cotto++ | src/m0/perl5/m0_interp.pl:
01:08 dalek parrot/m0-prototype: add a header to M0 primitive strings, making most test fail
01:08 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/069285aeff
01:09 cotto_work jawnsy: in some superficial ways, yes.  It a bunch of ways, not even a little.
01:09 cotto_work *In
01:10 jawnsy I'm happy so long as it's not as painfully slow as Java, I guess.
01:17 theory left #parrot
01:24 simcop2387_ joined #parrot
01:25 bubaflub seen plobsing
01:25 aloha plobsing was last seen in #parrot 6 hours 56 mins ago saying "*if it does not work at first".
01:26 simcop2387 left #parrot
01:26 simcop2387_ is now known as simcop2387
01:31 bubaflub ping jay
01:32 Kulag left #parrot
01:32 Kulag joined #parrot
01:35 dalek parrot-gmp: a0c763e | bubaflub++ | setup.pir:
01:35 dalek parrot-gmp: updated setup.pir
01:35 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/a0c763e35b
01:35 dalek parrot-gmp: 5956c4c | bubaflub++ | / (3 files):
01:35 dalek parrot-gmp: fix missing string cast and move a few things around
01:35 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/5956c4c24f
01:35 dalek parrot-gmp: 552f76b | bubaflub++ | src/GMP/thunks.nci:
01:35 dalek parrot-gmp: add thunk for string functions
01:35 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/552f76b178
01:35 dalek parrot-gmp: acb8999 | bubaflub++ | / (5 files):
01:35 dalek parrot-gmp: no longer require libffi:
01:35 dalek parrot-gmp:
01:35 dalek parrot-gmp: load thunk in GMP::Common
01:35 dalek parrot-gmp: remove check and requirement for libffi in setup.winxed
01:35 dalek parrot-gmp: update README
01:35 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/acb899987d
01:38 bubaflub msg jay my latest commits generate generate thunks and load the compiled stuff
01:38 aloha OK. I'll deliver the message.
01:56 theory joined #parrot
01:56 cotto_work time to go home
01:57 bubaflub left #parrot
02:02 theory left #parrot
02:03 preflex left #parrot
02:07 preflex joined #parrot
02:13 kid51_at_dinner is now known as kid51
02:23 cotto ~~
02:27 dalek nqp: dad45a0 | pmichaud++ | src/ops/nqp.ops:
02:27 dalek nqp: Fix off-by-one error in radix conversion.
02:27 dalek nqp: review: https://github.com/perl6/nqp/commit/dad45a076e
02:32 jay Back... congrats bubaflub, nice!  I'll have to look...
02:33 lg_quassel joined #parrot
02:35 losinggeneration left #parrot
02:38 kid51 Code freeze notice just posted to parrot-dev
02:39 kid51 left #parrot
02:58 lichtkind left #parrot
03:16 bubaflub joined #parrot
03:17 jay welcome back bubaflub, and congrats on your thunk success!
03:17 bubaflub jay: thanks.  i'll have to figure out exactly where to install some of this stuff, but it works.  i'll write up a little something something tomorrow; a step-by-step for others.
03:18 jay It will be easier now rather than later... !_)
03:18 jay Not literally now.  Just now-ish and not a month from now.
03:19 bubaflub jay: indeed.  still fresh in my mind.  some of the trickiness is using the Parrot config hash to call the write compiler and linker with all the correct flags.
03:37 bluescreen left #parrot
03:51 jay g'night, bubaflub!
03:51 jay left #parrot
03:53 theory joined #parrot
04:00 daniel-s left #parrot
04:01 daniel-s joined #parrot
04:23 dalek rakudo/nom: 6b3b601 | pmichaud++ | src/core/operators.pm:
04:23 dalek rakudo/nom: Fix regression introduced in ef31cef.  According to S03-sequence/basic.t,
04:23 dalek rakudo/nom: a sequence of Rats should remain a sequence of Rats, even if the
04:23 dalek rakudo/nom: denominators are 1.  Instead of narrowing values, narrow the geometric
04:23 dalek rakudo/nom: factor whenever its denominator is 1.
04:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b3b6011c3
04:23 dalek rakudo/nom: 90a61f8 | pmichaud++ | src/core/Cool.pm:
04:23 dalek rakudo/nom: Fix some bugs in .rindex method.
04:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90a61f895f
04:23 dalek rakudo/nom: 3923684 | pmichaud++ | / (2 files):
04:23 dalek rakudo/nom: More Str.Numeric fixes and improvements.
04:23 dalek rakudo/nom:
04:23 dalek rakudo/nom: Although converting a string with no number is supposed to fail,
04:23 dalek rakudo/nom: doing so causes all sorts of issues throughout the spectests with
04:23 dalek rakudo/nom: no clear-cut solutions.  Therefore I'm fixing the conversion to
04:23 dalek rakudo/nom: treat non-numbers as integer zero for now, until we can regroup
04:23 dalek rakudo/nom: and figure out how we want to handle the failure cases.
04:23 dalek rakudo/nom:
04:23 dalek rakudo/nom: Note that any non-whitespace characters following a valid number
04:23 dalek rakudo/nom: or partial number still results in a failure, though.
04:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3923684cbe
04:38 preflex left #parrot
04:39 Kulag left #parrot
04:40 Kulag joined #parrot
04:42 preflex joined #parrot
04:46 Kulag left #parrot
04:47 Kulag joined #parrot
05:12 logie joined #parrot
05:13 Kulag left #parrot
05:15 Kulag joined #parrot
05:21 Kulag left #parrot
05:27 Kulag joined #parrot
05:33 Drossel joined #parrot
05:33 Kulag left #parrot
05:38 Kulag joined #parrot
05:39 Drossel left #parrot
05:44 Kulag left #parrot
05:50 dalek parrot-libgit2: 71155e0 | dukeleto++ | src/git2.nci:
05:50 dalek parrot-libgit2: Update NCI file for v0.14.0
05:50 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/71155e0ab8
05:50 Kulag joined #parrot
06:22 dalek parrot-libgit2: 465b2ef | dukeleto++ | rosella/ (20 files):
06:22 dalek parrot-libgit2: Keep a copy of Rosella 2179dc26f8 in our repo so people don't need to fetch an external dep to run our test suite
06:22 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/465b2ef404
06:22 dalek parrot-libgit2: 43a7a1d | dukeleto++ | rosella/ (2 files):
06:22 dalek parrot-libgit2: Add some metadata about rosella
06:22 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/43a7a1d06e
06:22 dalek parrot-libgit2: 60a990e | dukeleto++ | / (2 files):
06:22 dalek parrot-libgit2: Attempt to restructure the Winxed namespaces that things go in
06:22 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/60a990e244
06:40 theory left #parrot
06:40 logie left #parrot
06:51 fperrad joined #parrot
06:59 mj41 joined #parrot
07:07 preflex left #parrot
07:10 preflex joined #parrot
07:23 dalek rakudo/nom: 48ba2f3 | moritz++ | tools/build/Makefile.in:
07:23 dalek rakudo/nom: [build] "make test" needs to depend on Test.pir, because the last test attempts to load Test.pm
07:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48ba2f325e
07:27 Drossel joined #parrot
07:28 Kulag left #parrot
07:29 fperrad left #parrot
07:36 fperrad joined #parrot
07:52 Kulag joined #parrot
07:53 Drossel left #parrot
07:59 zloyrusskiy joined #parrot
08:26 dalek parrot/m0-prototype: f89e43e | cotto++ | src/m0/perl5/m0_ (2 files):
08:26 dalek parrot/m0-prototype: implement get/set word ops and add some header-awareness and null termination
08:26 dalek parrot/m0-prototype:
08:26 dalek parrot/m0-prototype: This enables basic string manipulation ( see
08:26 dalek parrot/m0-prototype: https://gist.github.com/1083875 ).
08:26 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/f89e43eb71
08:26 dalek parrot/m0-spec: 09a45fd | cotto++ | docs/pdds/draft/pdd32_m0.pod:
08:26 dalek parrot/m0-spec: add get_ and set_word ops, hopefully not for long
08:26 dalek parrot/m0-spec:
08:26 dalek parrot/m0-spec: This lets me deal with strings with headers in a reasonable fashion, but
08:26 dalek parrot/m0-spec: it's also another two ops.  Preferable would be to roll get/set
08:26 dalek parrot/m0-spec: word/byte into a single op.  For now, this serves as a tolerable first
08:26 dalek parrot/m0-spec: approximation.
08:26 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/09a45fddd2
08:27 cotto dukeleto, https://github.com/parrot/parrot/commit/f89e43eb71
08:31 cotto time for sleep
08:33 Kulag left #parrot
08:34 Kulag joined #parrot
08:40 Kulag left #parrot
08:45 Drossel joined #parrot
08:51 Drossel left #parrot
08:53 contingencyplan left #parrot
08:56 Kulag joined #parrot
09:22 particle1 joined #parrot
09:24 zloyrusskiy left #parrot
09:26 particle left #parrot
09:32 Kulag left #parrot
09:35 Kulag joined #parrot
10:01 Kulag left #parrot
10:02 Kulag joined #parrot
10:05 woosley left #parrot
10:15 autark left #parrot
10:27 Kulag left #parrot
10:29 Kulag joined #parrot
10:43 dalek TT #2151 closed by Felipe++: Memory leak on imcc_compile_buffer_safe() function
10:43 dalek TT #2151: http://trac.parrot.org/parrot/ticket/2151
10:53 dalek rakudo/nom: 3bf08d5 | moritz++ | src/core/Cool.pm:
10:53 dalek rakudo/nom: handle case of empty needle in rindex
10:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3bf08d5788
10:59 preflex left #parrot
11:02 preflex joined #parrot
11:06 jsut joined #parrot
11:11 jsut_ left #parrot
11:32 woosley joined #parrot
11:41 smash left #parrot
11:46 JimmyZ joined #parrot
11:54 jay joined #parrot
11:54 jay left #parrot
11:54 jay joined #parrot
11:58 plobsing joined #parrot
12:02 JimmyZ_ joined #parrot
12:03 JimmyZ_ left #parrot
12:06 JimmyZ left #parrot
12:07 fahad left #parrot
12:11 plobsing left #parrot
12:17 whiteknight joined #parrot
12:17 zloyrusskiy joined #parrot
12:19 whiteknight good morning, #parrot
12:19 Felipe good morning parroters :)
12:20 bluescreen joined #parrot
12:23 whiteknight hello Felipe: Awesome work on that ticket
12:23 whiteknight Felipe++
12:24 jay good morning parrot
12:26 whiteknight good morning, jay
12:27 ambs joined #parrot
12:27 jay I have a feeling I'm re-inventing the wheel, but this seems obvious: after a basic grammar, action, and runtme is in place so there is core functionality, can't additional functionality of a language be written in the language itself?  Kind of like a second stage of the build process?
12:29 jay whiteknight: thank you for http://whiteknight.github.co​m/Rosella/winxed/index.html.  If I get away from NQP and into Winxed and wanted to contribute, you'll have to tell me how best to do it.  Docs are needed.
12:31 whiteknight jay: Yes, once you have the basics of syntax put together in NQP, you should be able to write the rest in the language itself. That's called bootstrapping and we do a lot of it around here
12:31 Coke jay - sure,  perl6 does that.
12:31 Coke (though, since perl6 looks a lot like nqp, that can be hard to suss out.)
12:31 whiteknight When I was working on Matrixy, my Matlab clone, a lot of the "builtin" functions that weren't needed at the lowest levels were written in M
12:32 Felipe whiteknight: thanks, I want contribute more and more :))
12:32 whiteknight jay: At the moment, NQP is probably the better choice in terms of building a compiler. It has the grammar and related functionality. Winxed doesn't have that stuff built-in, but there are projects around to add that
12:32 jay Interesting.  Good term.  Also used in the field of statistics.
12:32 whiteknight There's an OMeta port for winxed, and there's an LALR library being developed for GSOC
12:33 jay I was pretty down on NQP a day or so ago, but am feeling better this AM.
12:34 whiteknight jay: It's a very low-level language, deceptively so. It's not completely unlike a C-level language, for the VM
12:34 whiteknight it's easy to get down on it when it simultaneously seems to have so much of its own semantics, and yet exposes so many of the nitty-gritty details
12:34 jay You expressed that better than I could have.
12:34 whiteknight that's why we write compilers for better languages, like R. Then we never have to think about NQP or PIR or any of this Parrot crap ever again
12:35 whiteknight ideally, Parrot should be the invisible foundation on which the better things are built
12:35 jay Talk about a thankless job...  so...  thanks, all!  I'm sold on it.
12:41 whiteknight oh, that's like saying making steel is thankless. Nobody buys a block of steel for itself, you buy cool things made of steel
12:43 whiteknight you don't even need to know what your bridge is made of, you just know it's big, it's safe, and it's not going nowhere
12:43 jay lol  And hopefully someone wrote down direction on how to build it.  Just in case.
12:43 whiteknight :)
12:44 whiteknight msg dukeleto: I just built Rosella on parrot/winxed HEAD without any issues. Can you try a git clean -xdf to double-check it's not some kind of weird holdover issue?
12:44 aloha OK. I'll deliver the message.
12:47 whiteknight hmmm, I am seeing a segfault on the String.t test, so that's not good. Segfaults are never good
12:47 whiteknight I suspect there is a problem with sprintf somewhere
12:48 whiteknight msg dukeleto: Nevermind that last message, I am seeing a segfault on my machine in rosella t/string/String.t in the sprintf code still. It's probably a heisenbug that pops up for you in setup.winxed. I'll take a gander
12:48 aloha OK. I'll deliver the message.
12:55 jay Are the gist pastes and links long-lived?  E.g. does it make sense to link to them from a blog?
13:01 GeJ left #parrot
13:01 GeJ joined #parrot
13:04 zloyrusskiy left #parrot
13:05 bubaflub jay: i believe gists do not expire but you might want to put it somewhere else
13:05 jay Thanks.  good morning bubaflub!
13:05 whiteknight gists don't expire, that I am aware of
13:06 bubaflub morning jay
13:09 plobsing joined #parrot
13:10 soh_cah_toa left #parrot
13:13 jsut_ joined #parrot
13:13 bubaflub whiteknight: last night i got the NCI thunk shared library to build correctly.  is there a place i need to install it to?
13:14 bubaflub or rather copy it to outside of my own project repo
13:14 rurban joined #parrot
13:15 plobsing left #parrot
13:15 ambs left #parrot
13:18 jsut left #parrot
13:20 whiteknight bubaflub: for what, for installing it?
13:20 bubaflub whiteknight: yeah.  i imagine i'll have to put my shared library somewhere for people to use my stuff, right?
13:21 whiteknight We really need to add this crap to distutils, to cut out all this guesswork
13:24 zloyrusskiy joined #parrot
13:35 plobsing joined #parrot
13:40 Coke left #parrot
13:40 Coke joined #parrot
13:45 NotFound sprintf is an horrendous function and concept, I think it will be better to use a StringBuilder
13:46 NotFound Everytime I use sprintf the Invisible Pink Unicorn kill a lisp developer.
13:52 whiteknight so what's causing these segfaults?
13:55 whiteknight It's distressing because of the nature of the loop inside the GC. Items being marked shouldn't be able to get marked again
13:55 NotFound whiteknight: probably some misconversion or lack of conversion between strings and pmcs.
13:56 whiteknight so why did it just start appearing now?
13:56 whiteknight or is that just a coincidence?
13:57 NotFound Don't know, it can be related to recent changes in the sprintf builtin. But in any case, it should never segfault, no matter how wrong it may be used.
13:57 whiteknight right, that's what has me worried. There's no way a winxed change should make Parrot segfault
13:58 whiteknight how did the winxed sprintf builtin change?
13:58 NotFound Unless you are using with a PMC got from foreign territories via nci, of course.
13:58 NotFound whiteknight: I deleted the PMC variant
13:59 NotFound But the internals of the sprintf ops are the same, both variants use Parrot_psprintf
14:00 whiteknight right
14:00 darbelo joined #parrot
14:00 dalek NQR: 02f6997 | (Jay Emerson)++ | / (8 files):
14:00 dalek NQR: Settling on Fixed*Array design
14:00 dalek NQR: review: https://github.com/NQRCore/NQR/commit/02f6997caf
14:02 jay http://parrot.org/content/vector​-design-decision-and-baby-steps...
14:02 NotFound const INTVAL pat_len = (INTVAL)Parrot_str_byte_length(interp, pat); WTF?
14:02 NotFound (In Parrot_sprintf_format)
14:02 NotFound Why bytelength?
14:06 dalek website: jayemerson++ | vector design decision and baby steps...
14:06 dalek website: http://www.parrot.org/content/vect​or-design-decision-and-baby-steps...
14:07 darbelo left #parrot
14:09 zloyrusskiy left #parrot
14:09 lucian joined #parrot
14:09 darbelo joined #parrot
14:10 NotFound ./winxed -e 'string s = sprintf("año %i", [ 2011 ]);'; -> Cannot get character past end of string
14:11 zloyrusskiy joined #parrot
14:13 NotFound ./winxed -e 'string s = sprintf("año %i", [ 2011 ]); say(s);'; -> After changing str_byte_length to str_length: año 2011
14:13 NotFound Maybe unrelated, but worth fixing.
14:17 logie joined #parrot
14:19 Coke left #parrot
14:19 Coke joined #parrot
14:21 dalek parrot: 94936d4 | NotFound++ | src/spf_render.c:
14:21 dalek parrot: fix Parrot_sprintf_format: use char length, not byte legth, in the format string
14:21 dalek parrot: review: https://github.com/parrot/parrot/commit/94936d4944
14:22 NotFound whiteknight: test with this fix, just in case.
14:22 whiteknight i will do it in a little while
14:25 zloyrusskiy left #parrot
14:27 dalek rakudo/nom: 8c957ea | pmichaud++ | / (2 files):
14:27 dalek rakudo/nom: Add Inf and NaN to Str.Numeric.  Add S32-str/numeric.t to spectests.
14:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c957ea17d
14:28 moritz perl6: say +'+NaN'
14:28 p6eval niecza v7-38-gf5e9082: OUTPUT«Unhandled exception: System.FormatException: Unknown char: N␤  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤  at System.Double.Parse (System.String s, IFormatProvider provider) [0x00000] in
14:28 p6eval ..<filename unkno…
14:28 p6eval ..rakudo 1ddda5: OUTPUT«NaN␤»
14:28 p6eval ..pugs: OUTPUT«0␤»
14:28 moritz three compilers, three answers :-)
14:29 zloyrusskiy joined #parrot
14:30 Coke TimToady: say +'+NaN'
14:30 Coke there, that should help.
14:31 whiteknight I am going to assume that the rakudo version is the correct one?
14:32 NotFound Again the same old problem: Can I add a test that needs utf8 to a pir file without making the entire test file fail if no icu?
14:33 moritz sorry, meant to post that in #perl6
14:33 NotFound Are you going to add negative Nan?
14:34 whiteknight negative NaN? madness!
14:34 moritz not more madness than other ideas in #perl6 :-)
14:34 NotFound whiteknight: we joked about that some time ago.
14:35 NotFound Negative 0 is bizarre enough %-)
14:37 moritz it is indeed
14:40 darbelo_ joined #parrot
14:40 darbelo left #parrot
14:41 darbelo joined #parrot
14:41 darbelo_ left #parrot
14:46 PacoLinux left #parrot
14:46 darbelo left #parrot
14:46 darbelo joined #parrot
14:47 PacoLinux joined #parrot
14:51 whiteknight seen bacek?
14:51 aloha bacek was last seen in #parrot 43 days 4 hours ago joining the channel.
14:51 whiteknight seen bacek_at_work?
14:51 aloha bacek_at_work was last seen in msg 11 days 11 hours ago <private message>.
14:52 whiteknight seen allison?
14:52 aloha allison was last seen in #parrot 12 days ago saying "This is pretty cool http://www.stargit.net/#github (look up github/parrot)".
14:52 whiteknight benabik, lucian: ping
14:52 lucian whiteknight: pong
14:52 whiteknight lucian: have you been in touch with allison at all recently?
14:53 lucian yeah, had a chat yesterday. we'll have a longer chat later today
14:53 whiteknight She hasn't filled out her midterm review yet, and we really need her to do that
14:53 lucian whiteknight: oh. ok
14:53 whiteknight lucian: how is the project going? The commits stream looks like it has slowed down in the past few weeks
14:54 lucian whiteknight: yes it has. i've basically run out of money and had to get a job
14:54 allison whiteknight: just submitting it now
14:54 whiteknight allison++ Thanks!
14:54 allison whiteknight: (having a bit of browser trouble this morning)
14:55 whiteknight allison: It's okay, I just want to make sure important things don't get forgotten
14:55 allison whiteknight: thanks for catherding
14:55 whiteknight if I could only find bacek, the last missing feline...
14:57 NotFound whiteknight: Important things like mouses? ;)
14:57 * Coke submitted mine yesterday.
14:58 whiteknight Coke++ Yes, thank you.
15:01 dmalcolm joined #parrot
15:05 lucian left #parrot
15:06 whiteknight Does anybody have any ideas about bacek? I haven't seen him around in a while and he hasn't filled out his mentor review. I don't want to drop to plan B if he's going to come in and do it himself soon
15:07 NotFound Have read the ticket just now: I'm opposed to revert winxed because of a bug elsewhere.
15:08 whiteknight yeah, it's not a winxed bug
15:14 jay NQP:   while ($f<=$t) { ... } does not work, it requires spaces:   while ($f <= $t) { ... }.  Is there a good reason for that?
15:15 whiteknight does it require both spaces, or just the second one?
15:15 jay Just a sec
15:15 contingencyplan joined #parrot
15:15 woosley left #parrot
15:15 whiteknight I suspect the =$ symbol  might be treated specially, which throws off the parse
15:15 jay Interesting: compiled with a space before and not after.  Didn't compile with a space after and not before.
15:16 jay However, I seem to remember having working code before with no spaces.  Perhaps the parsing is sensitive to how it is nested in some odd way?
15:16 whiteknight while($f<=  $t) works?
15:16 jay No.  The other one does.
15:16 whiteknight Ah, okay
15:17 jay Actually, I like spaces, so I don't really care, but...
15:17 whiteknight The <> can be used for a hash key. The parser may be expecting $f< to be the start of a keyed lookup
15:17 allison whiteknight/lucian: Pass submitted
15:17 whiteknight $f<foo> is the same as $f{"foo"}
15:17 whiteknight allison++
15:18 allison (had to restart on a different computer)
15:18 jay Ah.  ok.  I don't particularly like the former.
15:19 whiteknight jay: No, but it is the language syntax. Some people do like the shorthand
15:19 jay If that is a subset of the Perl6 syntax, I'd say leave it in Perl6, don't let it migrate to NQP.
15:20 whiteknight :)
15:20 jay Just my 0.5 cents
15:20 whiteknight It's already in NQP, and the people writing the parsers make the rules
15:21 NotFound And the tokens.
15:21 dalek rakudo/nom: ff6f2f9 | pmichaud++ | src/core/Str.pm:
15:21 dalek rakudo/nom: Refactor Str.Numeric a bit for clarity, add "num/den" conversion.
15:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ff6f2f9482
15:21 jay Ah -- NotFound: the tokens are really hashes in Grammar.pm?
15:22 jay If so, I would have found Gammar.pm much easier to decipher if they had just used normal hash notation.
15:24 NotFound jay: no idea, I wrote my own parser because I've never be able to understand nqp and its tools.
15:24 jay lol  I rest my case.
15:28 NotFound "I'll support Integer, Float, and Strong"
15:28 NotFound Is good to have Strong support ;)
15:29 whiteknight we need more Strongs
15:30 jay off to lecture... back later.
15:30 darbelo_ joined #parrot
15:32 * PerlJam wonders what people don't understand about NQP
15:33 whiteknight msg benabik: When you get online, we should have a GSOC-related meeting
15:33 aloha OK. I'll deliver the message.
15:33 dodathome joined #parrot
15:35 darbelo left #parrot
15:44 preflex left #parrot
15:44 NotFound AFK
15:46 darbelo_ left #parrot
15:47 preflex joined #parrot
15:47 mj41 left #parrot
15:51 bluescreen left #parrot
15:56 dukeleto ~~
15:57 bubaflub hello dukeleto
15:57 dukeleto bubaflub: wazzup, grasshopper
15:57 bubaflub dukeleto: not much.  i figured out how to compile NCI thunks last night; don't need libffi anymore.
15:58 bluescreen joined #parrot
15:59 dukeleto bubaflub: awesome!
16:00 dukeleto bubaflub: i have been lovingly stealing lots of ideas from parrot-gmp for parrot-libgit2
16:00 bubaflub dukeleto: yep.  took a while, but i got it.  i still need to figure out where the shared library should go when i install via plumage and i still need to write up something for jay++
16:00 bubaflub dukeleto: steal away
16:03 jawnsy left #parrot
16:03 dukeleto seen bacek?
16:03 aloha bacek was last seen in #parrot 43 days 5 hours ago joining the channel.
16:03 dukeleto that is too long...
16:04 everbrew joined #parrot
16:06 dukeleto everbrew: welcome to #parrot
16:06 everbrew thanks!
16:07 benabik seen bacek_at_work
16:07 aloha bacek_at_work was last seen in msg 11 days 12 hours ago <private message>.
16:07 everbrew w32 parrot stopped compiling sometime between Wed and today
16:08 whiteknight stopped compiling? Damnit
16:08 everbrew yeah, cloned a fresh one just to make sure
16:08 whiteknight I'm on win64, but I'll try a build here and see what happens
16:09 theory joined #parrot
16:10 benabik dukeleto: The last few times I talked to bacek, it was while he was _at_work
16:10 whiteknight benabik: When did you see him last, that 11 days ago?
16:10 benabik whiteknight: Yes, I think so.
16:10 benabik aloha: hello, don't I have a message?
16:10 dukeleto everbrew: can you send the errors that you are getting to parrot-dev ? and tell in here, too :)
16:11 * benabik kicks aloha.
16:11 whiteknight benabik: okay, so let's me and you have a meeting today some time. I'll play backup while he's away
16:11 dukeleto everbrew: our smolder server went down for a few months, so we weren't getting regular feedback about windows builds
16:11 rurban_ joined #parrot
16:11 whiteknight nmake: fatal error U1077: '.\miniparrot.exe' : return code '0xc0000005'
16:12 * dukeleto investigates why our netbsd smoker is stuck on parrot 3.0.0
16:12 everbrew I've been building it every so often
16:13 whiteknight everbrew++
16:13 benabik whiteknight: I have a some time now, but later probably not so good.  My anniversary is this weekend so we're heading out for a day.
16:13 whiteknight benabik: okay. Want to have a quick meeting now in #ps?
16:14 rurban left #parrot
16:14 rurban_ is now known as rurban
16:15 benabik whiteknight: sure
16:15 everbrew bah, I hate the copy/paste results.  Try this:
16:16 everbrew http://pastebin.com/B0xhj63t
16:16 darbelo joined #parrot
16:17 ambs joined #parrot
16:18 dukeleto whichever netbsd developer thought it was a good idea to change the place of basic things like bash to be under /usr/pkg/bin should be tarred and featured
16:18 dukeleto </complainy>
16:18 everbrew featured?  feathered?
16:18 dukeleto everbrew: yes. feathered.
16:18 * dukeleto drinks more coffee
16:19 benabik coffee++
16:21 Coke there's a PATH for a reason! ;)
16:21 Coke is done with coffee for the day. Time to move onto CokeZero.
16:22 dukeleto Coke: of course /usr/pkg/libexec/git-core/ should be in my PATH! Stupid me for thinking binaries should be in dirs containing /bin
16:23 everbrew $PATH is a twisted mess of directory structures, all alike.
16:24 dukeleto everbrew: what does ./include/parrot/parrot.h:36 look like ?
16:24 benabik dukeleto: That looks like it should be the execdir for git...  the core git program should be in a /bin and have .../libexec/git-core stored in the binary.
16:24 benabik dukeleto: git looks for sub-programs in `git --exec-path` and then PATH
16:24 Coke dukeleto: ;)
16:25 benabik (Or maybe it was PATH, then exec-path.  I forget.)
16:25 everbrew #includ "parrot/config.h"
16:25 everbrew #include "parrot/config.h"
16:26 dukeleto benabik: this all worked before, and something changed on the netbsd machine, and then git-sh-setup couldn't be found, so the smoker has been smoking the same commit for the last 6 months
16:26 dukeleto everbrew: it looks like maybe parrot/config.h has a bug in it.
16:26 dukeleto everbrew: it has nested #if stuff that maybe your windows compiler can't deal with
16:27 everbrew GNU Make 3.81
16:27 everbrew gcc 4.4.3
16:30 dukeleto everbrew: looks like it is borking on ./include/parrot/config.h:134 which is: #if 1
16:31 everbrew #if
16:31 everbrew #  define LONGLONG_SIZE 0
16:31 everbrew #endif
16:31 dukeleto everbrew: ah! it is #if 1 on my machine
16:31 dalek parrot: 1d4f49f | dukeleto++ | NEWS:
16:31 dalek parrot: Add a note to the readme about the new Winxed snapshot
16:31 dalek parrot: review: https://github.com/parrot/parrot/commit/1d4f49f634
16:32 dukeleto everbrew: that is a generated header file
16:32 dukeleto everbrew: the thing that generates it has a bug
16:32 everbrew wonderful!
16:32 dukeleto everbrew: i see the bug now
16:32 dukeleto everbrew: you don't have the LONG_LONG datatype
16:33 dukeleto everbrew: config/gen/config_h/config_h.in
16:33 dukeleto everbrew: that is the template file
16:34 dukeleto everbrew: HAS_LONG_LONG is "", instead of being 0, which causes a syntax error
16:34 dukeleto everbrew: looks like the bug was introduced in ec159d26bf038ac53312349c96cb4c41f4f73b60 by plobsing
16:37 dukeleto ok, the netbsd smoker is back and just gave a PASS for master
16:38 Coke having conversations in parrotsketch to avoid making noise in parrot actually makes it harder for me to ignore the conversation, btw.
16:39 Coke (for whiteknight and benabik) YMMV.
16:39 whiteknight YMMV?
16:39 whiteknight it's not intended to be a private conversation
16:41 benabik dukeleto: I think git moved git-sh-setup from PATH to exec-path at some point, but I can't see where.  That's probably what broke it.  Adding `git --exec-dir` to the PATH of the affected script is the easiest fix.
16:41 Coke no, but your goal of "keeping it out of the way" is having the reverse effect, at least for some. Just FYI.
16:41 Coke aloha, YMMV is Your mileage may vary.
16:41 aloha Coke: Okay.
16:43 cotto ~~
16:43 whiteknight Coke: Okay. next time we can pick a different venue.
16:48 dodathome left #parrot
16:52 Coke nbd. here works. ;)
16:56 dodathome joined #parrot
17:09 daniel-s left #parrot
17:18 hercynium joined #parrot
17:20 lucian joined #parrot
17:35 cotto_work ~~
17:41 whiteknight hello cotto_work
18:00 Coke left #parrot
18:00 Coke joined #parrot
18:06 cotto_work jay: I'm not familiar with the "Strong" type mentioned in your blog post. ;)
18:06 ambs left #parrot
18:08 cotto_work jay++
18:21 soh_cah_toa joined #parrot
18:21 benabik left #parrot
18:21 zloyrusskiy left #parrot
18:23 soh_cah_toa ~~
18:31 whiteknight msg NotFound your last commit/fix to sprintf didn't fix Rosella. Still segfaulting
18:31 aloha OK. I'll deliver the message.
18:33 cotto_work hi soh_cah_toa
18:33 soh_cah_toa cotto_work: hey
18:35 tadzik hello parrots
18:35 whiteknight hello tadziks
18:36 darbelo left #parrot
18:36 tadzik how are you doing whiteknight?
18:37 darbelo joined #parrot
18:38 whiteknight I'm doing well tadzik. yourself? How is your project going?
18:40 bubaflub whiteknight: i was having that same problem with Rosella/Winxed/Parrot last night (Segfaulting on sprintf) - i had to completely remove everything, make realclean and git clean on parrot, and start over.
18:40 tadzik Fine :) I had a pretty crazy week, but I'm up-to-date with everything. And stuff gets more and more exciting :)
18:40 zloyrusskiy joined #parrot
18:40 whiteknight bubaflub: I've been doing that on my vm here, no love. Same problem
18:41 bubaflub whiteknight: ok, must be a different problem then.
18:41 whiteknight I made realclean on parrot, I didn't git clean it
18:41 whiteknight I can try that, but I'm incredulous that this is the problem
18:47 lichtkind joined #parrot
18:54 whiteknight normally we like to see Parrot getting more stable as a release approaches, but it feels like we are moving in the opposite direction
18:54 whiteknight these sprintf segfaults are extremely worrisome
18:55 whiteknight and the win32 build failures are obnoxious
18:55 * Coke fires up a parrot build.
18:55 Coke ah, yes, meant to get that working on my work win32top to see if I could build with the msvc toolchain.
18:59 cotto_work The auto::gcc step explodes when I configure for an msvc build.
19:00 Coke it should just skip.
19:00 Coke (and used to.)
19:00 Coke all this is working for jnthn++, at some level, anyway.
19:03 cotto_work http://nopaste.snit.ch/61314
19:03 cotto_work irritating, but not a release blocker
19:08 Coke do you really need to specify all those options?
19:09 Coke (and it looks like a showstopper...)
19:09 Coke all tests pass on master for me on darwin/x86
19:10 * Coke tries a smoke run with TEST_JOBS=30
19:10 everbrew FBSD/Linux => pass; W32 => fail
19:10 whiteknight I build on windows with msvc. I don't use strawberry
19:11 Coke activestate?
19:11 Coke I know strawberry tends to prefer using its own toolchain, which is fine.
19:11 whiteknight yeah, I have activestate
19:12 whiteknight because the parrot build pulls defaults from the perl build, you still have to use a compiler/perl combo that's compatible
19:12 whiteknight so activestate+msvc, or strawberry+mingw
19:12 whiteknight it's been that way for years. Attempting to mix is BAD NEWS
19:12 Coke ARRRRGVH
19:13 Coke when doing make smoke, you get an immediate error about tap/archive/harness.
19:13 whiteknight it's like @ARGV, but more pirate
19:13 Coke however, you get a too late to do anything about it error about lwp/useragent.
19:13 whiteknight heh.
19:14 Coke someone should fix that.
19:14 whiteknight I feel like we are going to need an all-hands-on-deck fix-the-bugs hackathon this weekend
19:16 whiteknight sprintf segfaults, win32 build AND test failures, etc.
19:19 cotto_work Coke: it's largely cargo-culted from the instructions on the wiki
19:19 Tene orly?
19:20 cotto_work The build completes just fine, though I have a few failures.
19:22 dalek rakudo/nom: 6c8b8d1 | moritz++ | src/core/ (2 files):
19:22 dalek rakudo/nom: port Str.split(Str) from master
19:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c8b8d1f35
19:23 Tene whiteknight: I haven't been paying any attention at all to parrot for a while; what's the "etc."?
19:24 whiteknight Tene: Lots of little errors are cropping up in the past day or so
19:24 whiteknight and a few issues throughout the week
19:25 Tene ack
19:26 whiteknight (gsoc students)++ Everybody passed their midterm evaluations
19:26 tadzik yay!
19:26 tadzik I passed too
19:26 whiteknight tadzik++
19:26 tadzik (gsoc students)++
19:27 bubaflub huzzah!
19:31 Coke cotto_work: if there are specific windows build instructions, should probably go in README.win or something.
19:32 Coke README_win32.pod, that is.
19:32 zloyrusskiy left #parrot
19:32 Coke whiteknight: did all students fill out their own evals?
19:32 whiteknight yes. I believe, with maybe one exception, all the student evals were in before any of the mentor evals
19:33 whiteknight the profit motive, hard at work
19:34 cotto_work Coke: good idea
19:38 cotto_work Has anyone built Parrot with Borland's compiler?
19:39 everbrew sounds dangerous
19:42 Coke ah, I remember my blocker - I couldn't build perl6 on windows because I needed a shell that had both the msvc tools AND the git tools. I'll split this up and build parrot by hand separately.
19:42 cotto_work Looks like it's a free (beer) download.
19:42 whiteknight free beer? Where?
19:42 whiteknight and how do you download beer?
19:42 cotto_work aloha bcc is http://forms.embarcadero.com​/forms/BCC32CompilerDownload
19:42 aloha cotto_work: Okay.
19:42 everbrew it'll cost you a form to fill out
19:43 tadzik whiteknight: I'm so waiting for that to be possible. Imagine the new possibilities of piracy :)
19:43 cotto_work Best.  Piracy.  Evar.
19:43 tadzik . o O ( You wouldn't download a car )
19:43 whiteknight you remember those commercials "You wouldn't download a car, would you?"
19:43 whiteknight I'm thinking to myself "shit yes I would"
19:43 Tene +1
19:44 tadzik open source cars. Take that!
19:44 Tene http://reprap.org/
19:44 Tene ;)
19:44 tadzik just don't by the bumblebee ones
19:44 everbrew You didn't get the "fat pipe" option on your ISP to watch movies, it's so it could get more beer.
19:45 cotto_work whiteknight: http://www.youtube.com/watch?v=OWPfcEOr2Yg
19:45 tadzik heh, a tap on usb
19:45 Coke 3d car printers.
19:50 Coke cotto++ # with that config line, I can config parrot on win32
19:51 Coke building...
19:52 Coke (wow is that slow.)
19:52 Coke huge number of build warnings.
19:53 mtk left #parrot
19:57 nopaste "coke" at 192.168.1.3 pasted "windows 7 / MSVC express, strawberry perl test failures." (13 lines) at http://nopaste.snit.ch/61318
19:58 Coke only 6 test failures, though.
19:59 Coke at least one of those failures is a line ending issue.
19:59 cotto_work Coke: exact same thing here
20:01 Coke I will submit a smoke report when I'm on a network that doesn't need an http proxy.
20:02 mtk joined #parrot
20:03 whiteknight oh great, another smoke report with failures in it
20:08 ambs joined #parrot
20:10 whiteknight left #parrot
20:13 cotto_work probably mine
20:18 Coke I have a bug on win7, building nqp.
20:19 nopaste "coke" at 192.168.1.3 pasted "can't run ops2c.exe on win7" (18 lines) at http://nopaste.snit.ch/61319
20:19 Coke looks like it's confused about what the path is supposed to be.
20:21 Coke unrelated: how to ask parrot for maxint, minint?
20:22 rohit_nsit08 joined #parrot
20:22 bubaflub Coke: parrot_config intvalmax
20:22 bubaflub or parrot_config intvalmin
20:25 Coke ok. and partcl-old has an example of getting at that information from PIR:
20:25 Coke https://github.com/partcl/partcl/b​lob/master/runtime/tcllib.pir#L132
20:25 Coke not that information exactly, but stuff in the config hash.
20:26 * Coke waves at rohit.
20:26 Coke so, back to my problem. Can't build nqp on win7.
20:28 Coke I suppose I should give up and use C:/bird instead.
20:29 Coke (of C:\)
20:40 Coke (yup, that's better.)
20:44 plobsing left #parrot
20:45 Coke cotto_work: important note: be sure to add your install directory bin and lib dirs to your PATH
20:45 NotFound left #parrot
20:47 dalek nqp: 4e4a66e | moritz++ | src/HLL/Actions.pm:
20:47 dalek nqp: replace guts of string_to_int with a short call to nqp::radix
20:47 dalek nqp: review: https://github.com/perl6/nqp/commit/4e4a66e111
20:50 dodathome left #parrot
20:50 alester left #parrot
21:06 fperrad left #parrot
21:07 zby_home joined #parrot
21:15 bluescreen left #parrot
21:20 zby_home left #parrot
21:24 cotto_work Coke: I wasn't testing an installed Parrot.
21:30 ambs left #parrot
21:31 everbrew left #parrot
21:37 darbelo left #parrot
21:39 lucian left #parrot
21:43 Psyche^ joined #parrot
21:48 Patterner left #parrot
21:48 Psyche^ is now known as Patterner
21:51 hercynium left #parrot
22:04 contingencyplan left #parrot
22:20 jay cotto_work++  Good catch on my imaginary type.
22:22 cotto_work jay++ # nice work on having something for which to make an imaginary type
22:23 jay Nice to have something that compiles and does what I ask it to, more or less!
22:38 rohit_nsit08 left #parrot
22:43 kid51 joined #parrot
22:43 lichtkind left #parrot
23:26 dmalcolm left #parrot
23:36 jay I have a question about the following token from squaak's grammar, if someone knows:
23:36 jay token infix:sym<+>  { <sym> <O('%additive, :pirop<add>')> }
23:37 jay I'd like to write my own operator that does vector (array) addition.  Similar to what Whiteknight did in matrixy.
23:37 jay But he had an old grammar format and it isn't clear to me how the function 'dispatch' (probably abusing that word) is working.
23:38 jay So I *think* I'd like to write my own PIR function to replace :pirop<add>?
23:39 Coke you wouldn't use pirop.
23:39 Coke pirop == use a pir opcode.
23:40 jay Right... I'm happy calling it jayadd or whatever.  Can I just stick it in Runtime.pm and write it in NQP?
23:41 Coke trying to find you an example.
23:43 Coke ok. Partcl does this. Your sub needs to be called 'infix:<+>' - mine are in src/Partcl/Operators.pm, but that's just a convention.
23:44 zloyrusskiy joined #parrot
23:44 jay So If I just write a sub with this name, it will be used instead of the default pirop?  Does that grammar line change?
23:44 Coke https://github.com/partcl/partcl-nqp/b​lob/master/src/Partcl/Grammar.pm#L177
23:45 jay I'll look, thx
23:45 Coke vs. https://github.com/partcl/partcl-nqp/b​lob/master/src/Partcl/Operators.pm#L22
23:45 Coke so, yes, remove the , :pirop<add>
23:46 jay Excellent, Coke++, that seems to be the perfect example to follow.  Many thanks!
23:47 Coke glad to help.
23:47 jay With some luck... I'll blog about it tomorrow.  !_)
23:50 jay Coke: what is the & before the function name in your example?
23:55 soh_cah_toa yeah, i always wanted to know that too: sub &infix:<foo> vs. sub infix:<foo>
23:55 jay I'm happy to try both, but I'm curious.

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

Parrot | source cross referenced