Camelia, the Perl 6 bug

IRC log for #parrot, 2011-11-09

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 rfw joined #parrot
00:24 bacek_at_work dukeleto, erm. I'm at work right now :)
00:38 Coke bacek_at_work: добро пожаловать
00:38 bacek_at_work Coke, спасибо :)
00:39 Coke ooh, I actually KNOW that word. ;)
00:40 Coke (though I didn't know that's how it was spelled. ;)
00:50 whiteknight I didn't get to mention it at #parrotsketch today because my computer was the fail, but there's a semantic analysis program called coccinelle that might be worth looking at
00:50 whiteknight for fixing things like NULL/STRINGNULL, etc
00:59 bacek_at_work https://github.com/bjpop/berp/ "Python 3 implementation in Haskell"
01:13 jsut joined #parrot
01:15 benabik joined #parrot
01:17 cotto whiteknight: I thought of that but I never got over the hump of actually setting it up.
01:17 whiteknight I read about it a long time ago, and haven't really thought about it since
01:18 cotto same here
01:18 whiteknight apparently it's been used to make non-trivial edits to the linux kernel, so that's reassuring
01:18 cotto yes
01:19 cotto that's what got me to look at it in the first place
01:19 cotto and the lwn article
01:22 cotto The reason I suggested a test is because something useful could be written with <10 lines of Perl 5.
01:23 cotto full-on static analysis would be nice though
01:27 nbrown joined #parrot
02:34 GodFather joined #parrot
02:35 GodFather joined #parrot
02:47 cotto 'evening
02:50 cotto How is berp's performance?
02:51 cotto nm.  It doesn't seem to be especially complete.  Asking about performance would be premature.
02:52 cotto still pretty cool
02:53 Tene joined #parrot
03:37 japhb Feature request: a backwards-searching variant of the find_not_cclass op.  Having to fake it is slowing certain string trim operations in Rakudo considerably.  How does one go about requesting it officially?
03:42 Coke open a RFE ticket on github?
03:42 Coke OOC, couldn't you prototype the op in perl6.ops?
04:28 bacek_at_work japhb, with 'utf-8' internally encoded strings it will be slow even on parrot level
04:31 zpmorgan joined #parrot
04:45 TonyC joined #parrot
04:52 nopaste joined #parrot
05:03 Khisanth joined #parrot
05:22 japhb bacek_at_work, yes, but it is currently ~6x slower to trim-trailing than to trim-leading, mostly due to the fact that finding the end of leading whitespace is a single pir op, while finding the start of trailing whitespace is a loop.
05:22 japhb (And that's after I optimized the loop)
05:23 japhb Coke, OK, will look there.
05:46 wagle joined #parrot
06:05 wagle joined #parrot
07:14 dalek nqp/bigint: 6426a56 | moritz++ | src/ (2 files):
07:14 dalek nqp/bigint: nqp_bigint_bool op (checks != 0)
07:14 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/6426a56c7f
08:08 alin joined #parrot
08:39 mj41 joined #parrot
08:51 dalek nqp/bigint: 1db0ea8 | moritz++ | src/ (2 files):
08:51 dalek nqp/bigint: fix a few ops, moritz--
08:51 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/1db0ea8d12
09:14 lucian joined #parrot
09:43 mj41 joined #parrot
10:22 dalek rakudo/bigint: fb5b1b9 | moritz++ | / (2 files):
10:22 dalek rakudo/bigint: start to switch to bigint ops
10:22 dalek rakudo/bigint:
10:22 dalek rakudo/bigint: This breaks spectest horribly, and I do not understand the failure mode
10:22 dalek rakudo/bigint: It says "get_boxed_ref could not unbox for the given representation" in
10:22 dalek rakudo/bigint: sub infix:<->, but when I test infix:<-> in isoluation, I cannot reproduce that failure mode
10:22 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/fb5b1b995e
10:58 alvis joined #parrot
10:59 ambs joined #parrot
11:06 particle joined #parrot
11:07 nbrown joined #parrot
11:20 jsut_ joined #parrot
11:31 Khisanth joined #parrot
11:32 schmooster joined #parrot
12:11 Psyche^ joined #parrot
12:26 bluescreen joined #parrot
12:49 alin joined #parrot
13:23 dalek rakudo/bigint: 88158ac | moritz++ | src/core/Int.pm:
13:23 dalek rakudo/bigint: a few fixes, still completely broken
13:23 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/88158acf84
13:27 whiteknight joined #parrot
13:28 whiteknight good morning, #parrot
13:47 alin joined #parrot
13:58 mls hi whiteknight! How are you doing?
14:02 benabik joined #parrot
14:04 benabik o/ #parrot
14:05 mls \o benabik!
14:11 mls (afk for a while)
14:15 whiteknight good morning, mls. I'm doing well. you?
14:17 man_in_shack left #parrot
14:17 dalek rakudo/bigint: 513f055 | moritz++ | src/core/Int.pm:
14:17 dalek rakudo/bigint: switch more ops to bigint
14:17 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/513f055d75
14:22 NotFound_b joined #parrot
14:24 dalek winxed: c70cc2e | NotFound++ | winxedst1.winxed:
14:24 dalek winxed: improve constant propagation in string concatenations
14:24 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/c70cc2e4a3
14:58 jsut joined #parrot
15:25 moritz http://en.wikipedia.org/wiki/Tim_sort might be interesting
15:33 whiteknight I was looking at implementing it for parrot, but ran out of tuits at the time
15:33 whiteknight but yes, it does look very interesting
15:39 dalek winxed: 0561450 | NotFound++ | winxedst1.winxed:
15:39 dalek winxed: simplify the construction of string literals during optimization
15:39 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/0561450d1f
15:53 benabik Visual explanation of TimSort: http://corte.si/posts/code/timsort/index.html
16:24 dukeleto ~~
16:39 whiteknight hello dukeleto
16:48 dalek winxed: fdf75e0 | NotFound++ | winxedst1.winxed:
16:48 dalek winxed: optimize a bit int, float and string initializers
16:48 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/fdf75e03ab
16:48 dalek nqp/bigint: 302cc17 | jnthn++ | src/ (2 files):
16:48 dalek nqp/bigint: Merge branch 'bigint' of github.com:/perl6/nqp into bigint
16:48 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/302cc1705d
16:55 dukeleto whiteknight: wazzup
16:56 whiteknight dukeleto: everything and nothing all at once. you?
17:03 dukeleto whiteknight: conf calling and attempting to fill out IRS forms. I finally got the info I need about PaFo to fill out the w9
17:04 whiteknight yeah, I saw that this morning. awesome
17:21 dalek winxed: 4f1c542 | NotFound++ | / (4 files):
17:21 dalek winxed: update NEWS and generated files
17:21 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/4f1c542189
17:27 dalek parrot: 1ee1c09 | nine++ | t/fullharness:
17:27 dalek parrot: Fix job concurrency in fulltest
17:27 dalek parrot: review: https://github.com/parrot/parrot/commit/1ee1c09aca
17:27 dalek parrot: de1cf6d | nine++ | / (4 files):
17:27 dalek parrot: Merge branch 'master' of github.com:parrot/parrot
17:27 dalek parrot: review: https://github.com/parrot/parrot/commit/de1cf6dcd8
17:27 dalek parrot/threads: 6912133 | nine++ | src/thread.c:
17:27 dalek parrot/threads: Don't exit a thread if alarms are still active, fixing sleep
17:27 dalek parrot/threads:
17:27 dalek parrot/threads: Currently does a busy wait till alarms expire. Full implementation will
17:27 dalek parrot/threads: sleep until notified by the main thread.
17:27 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/69121334c4
17:27 dalek parrot/threads: e034889 | nine++ | / (3 files):
17:27 dalek parrot/threads: Fix sleep in threads
17:27 dalek parrot/threads:
17:27 dalek parrot/threads: Only up to 4 threads are now created. These threads are stored in a
17:27 dalek parrot/threads: threads array and get notified on alarms by the main thread writing a
17:27 dalek parrot/threads: byte to the notifier pipe of the thread.
17:27 dalek parrot/threads:
17:27 dalek parrot/threads: TODO: implement on Windows
17:27 dalek parrot/threads: TODO: only write to the pipe if the thread is actually waiting for
17:27 dalek parrot/threads: alarms
17:27 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/e034889aaf
17:27 dalek parrot/threads: 1ee1c09 | nine++ | t/fullharness:
17:27 dalek parrot/threads: Fix job concurrency in fulltest
17:27 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/1ee1c09aca
17:27 dalek parrot/threads: 6b23e73 | nine++ | t/fullharness:
17:27 dalek parrot/threads: Merge branch 'master' into threads
17:27 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/6b23e73dbe
17:28 whiteknight nine++
17:31 dalek parrot: c7fd2f9 | NotFound++ | ext/winxed/ (2 files):
17:31 dalek parrot: update winxed snapshot to 4f1c542189:
17:31 dalek parrot: - 'multi' improved
17:31 dalek parrot: - better compile time evaluation of builtins
17:31 dalek parrot: - minor fixes and optimizations
17:31 dalek parrot: review: https://github.com/parrot/parrot/commit/c7fd2f9fa0
17:32 bluescreen joined #parrot
17:33 nine whiteknight: had a somewhat productive trip to a Rammstein concert in Zagreb ;) Though I wasted much time trying to store interpreters in a ResizablePMCArray which the GC didn't like
17:33 tadzik Zagrzeb, maybe?
17:35 nine tadzik: http://en.wikipedia.org/wiki/Zagreb
17:39 whiteknight I would love to go to a rammstein concert one day
17:39 tadzik oh, yeah, we call that "Zagrzeb" :)
17:43 nine tadzik: how do you pronounce that?
17:43 tadzik erm, "Zagrzeb"? :P
17:43 tadzik the same as "Zagżeb" :>
17:43 nine tadzik: ah, of course :)
17:43 tadzik did you see the Brzęczyszczykiewicz video?
17:48 cotto ~~
17:48 tadzik ~~
17:53 nine tadzik: no
18:01 tadzik nine: http://www.youtube.com/watch?v=ftrqO-jkMpE
18:01 tadzik tl;dr: don't ask a Polish guy how to pronounce stuff :P
18:02 dalek rakudo/bigint: 7b75f75 | jnthn++ | src/core/Int.pm:
18:02 dalek rakudo/bigint: Remove accidental boolification.
18:02 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/7b75f754b3
18:05 nine tadzik: epic
18:05 tadzik most of the old Polish comedies are awesome
18:57 mj41 joined #parrot
18:59 dalek winxed: b3a0908 | NotFound++ | t/basic/01initialize.t:
18:59 dalek winxed: test initializers
18:59 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/b3a0908ae1
18:59 dalek winxed: 1a6730a | NotFound++ | winxedst0.cpp:
18:59 dalek winxed: improve mixed type initializers in stage 0
18:59 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/1a6730a058
19:22 bluescreen joined #parrot
19:27 rfw joined #parrot
19:35 contingencyplan joined #parrot
19:37 mj41 joined #parrot
19:51 plobsing_ joined #parrot
19:57 dukeleto msg NotFound any help with https://github.com/letolab​s/parrot-libgit2/issues/8 would be really appreciated. Really stuck.
19:57 aloha OK. I'll deliver the message.
20:10 benabik Hm.  Installing libgit2 prior to trying to build parrot-libgit2 might be useful.
20:10 benabik homebrew++ # easy dependencies
20:13 benabik Hm.  And rosella.
20:14 whiteknight joined #parrot
20:18 dukeleto woot. Parrot was accepted into GCI this year!
20:18 dukeleto benabik: yeah, sorry about that
20:18 dukeleto benabik: bundling rosella with parrot-libgit2 kind of failed
20:19 dukeleto benabik: i almost added it as a git submodule
20:19 dukeleto benabik: if you have tuits to do that, i would surely accept the patch :)
20:19 benabik dukeleto: I barely have the tuits to do what I'm doing.  ;-)
20:20 benabik dukeleto: I don't mind installing dependencies, I just forgot that it would be needed.
20:20 benabik Big surprises were that I needed to change the libgit2 paths (/usr/local/lib/libgit2.dylib on OS X) and that parrot seems to have skipped using libffi and I don't know why.
20:21 benabik Although I note that parrot-libgit2 seems to rebuild everything on every invocation of make.  (I think because it always rebuilds the .nci file.)
20:21 dukeleto benabik: ooh, nice catch. parrot-libgit2 is still very alpha :)
20:21 dukeleto benabik: i use winxed setup.winxed build
20:22 dukeleto benabik: i only use the Makefile for updating the nci file (for new versions of libgit2/etc)
20:22 dukeleto benabik: but yes, the build system is confusing :)
20:22 benabik Ahhhhh…  I tend towards make when available.  You could do whiteknight's trick of just using make to call setup.winxed.
20:22 dukeleto benabik: the setup.winxed came after the Makefile, and does almost everything (accept the nci file generation)
20:23 dukeleto except, rather
20:23 dukeleto stupid languages
20:25 benabik How does parrot detect libffi?
20:26 benabik Ah.  OS X puts ffi.h in ffi/ffi.h
20:27 tadzik dukeleto: yay! \o/
20:36 whiteknight benabik: I have a quick alias "mj" for "make -j3" on my system. So the decision was either to update that alias to search for a setup.[pir|nqp|winxed] file and call that, or just create a simple makefile to pass through the command
20:37 whiteknight in terms of total keystrokes and firing braincells, the makefile was easier
20:37 benabik whiteknight: It also makes my "oh look a Makefile" habit work, so I appreciate it.  :-D
20:39 whiteknight :)
20:39 whiteknight urg, every time I see a cursor in sql code, I weep a little
20:39 benabik ?
20:40 benabik Ah.  I have ffi/ffi.h, libffi.dylib, but no libffi.pc.  Apple--
20:40 whiteknight if somebody asked me: Andrew, what's the most tacked-on, ugly, poorly implemented feature in any programming language you know of? I would have to say SQL cursors
20:42 * benabik adds Configure.pl voodoo to find libffi.  Whee.
20:44 benabik I've never dealt with SQL cursors.  This sounds like a goodness.
20:45 whiteknight benabik: if you had to track the status of an item in an ecommerce system, how would you do it?
20:45 whiteknight statuses like "purchased", "shipped", "returned", etc
20:46 benabik whiteknight: Probably have a status_id column in the item table and reference that to either a Status table or an enum.
20:46 whiteknight right. That's the same answer I said when my boss asked me that question.
20:46 benabik \o/
20:47 whiteknight The guy before me did it exactly differently: He used a bitfield where each item had bits set for the current status AND all previous statuses
20:47 benabik Uhhhhh.....
20:47 whiteknight so when you go to update all PURCHASED items in an order to SHIPPED, you have to loop over all rows in the set looking for all of them that have the PURCHASED bit set but NOT the SHIPPED or RETURNED bits
20:48 benabik I guess that can be useful if you have some items skip some steps, but that sounds like it really wants another table so you can do SELECTs on it...
20:48 benabik Bitfields don't play well with SELECT.
20:49 whiteknight so, in pure SQL mind you, he loops over all status bits looking for compatible ones, forms a bitmask from them, loops over rows with a cursor applying the bitmask. Then he deletes all the compatible rows, combines them together into a new insert with the new bitfield which is an OR of all individual bitfields
20:49 benabik ...
20:49 whiteknight srsly
20:49 tadzik eww
20:50 nine Well at least in PostgreSQL you should be able to simple use bitwise AND in your where and even to create an index on that.
20:50 benabik I mean, if your RDBMS supported bitwise operations in WHERE and UPDATE, it might not be so bad.
20:50 benabik But, srsly?
20:51 whiteknight I complain about Parrot code sometimes, but I've never seen code-written-for-free that's as bad as some code I've seen that was written for pay
20:52 tadzik :)
20:53 benabik Speaking of bad parrot code: apparently ops2c doesn't know things like `case 'b'` or casting to unsigned char.  (jnthn mentioned this on #perl6)
20:53 whiteknight I wouldn't call that bad code. ops2c features a parser that is known to only handle a subset of C
20:53 * benabik wants ops2c to burn in a fire, but also doesn't want/have the time to create a replacement for it.
20:53 whiteknight ops2c was previously written in perl5
20:54 whiteknight I seem to remember cotto complaining about the quality of the older version, but I don't know first hand
20:54 whiteknight if anybody wants to put together a replacement, I would be +1 to that
20:54 benabik I think it's scheduled for replacement in mythical M0-land.  :-/
20:58 whiteknight yeah, we'll work on that right after we're done feeding the unicorn, the griffin, and the sphynx
20:58 benabik :-D
21:06 cotto The code is better, but it's still no a compiler.
21:06 cotto *not
21:10 NotFound_b dukeleto: ping
21:16 benabik dukeleto: re: parrot-libgit2 issue 8.  Winxed's error is correct.  Git2.Index doesn't have a ptr attribute.
21:21 whiteknight cotto: The problem is that we don't want to write a C compiler, yet somehow we're stuck writing so much code in a needs-to-be-parsed dialect of almost-C
21:21 ambs joined #parrot
21:22 whiteknight M0 is supposed to be a language that we can write in that has the same capabilities as C, but isn't C
21:22 whiteknight also, anything that ops2c can't parse should probably be written in a separate function and called from the op instead of inlined into the op directly
21:22 whiteknight let the compiler do the inlining, and spare ops2c the heartache
21:24 whiteknight blah blah blah but GCC doesn't do inlining between compilation units blah blah blah
21:24 whiteknight anyway, it's time for me to go. Later
21:31 dukeleto NotFound_b: pong
21:32 NotFound_b dukeleto: setup build does not build all files
21:32 dukeleto NotFound_b: what does it leave out?
21:33 NotFound_b Git2/Cache and Git2/RefCache
21:40 dukeleto NotFound_b: are you on the latest commit on master?
21:40 NotFound_b dukeleto: I've cloned just now
21:43 dukeleto NotFound_b: you are using setup.winxed or the Makefile ?
21:43 NotFound_b setup.winxed
22:05 dukeleto interesting video about IonMonkey: http://www.youtube.com/watch?v=dPlpjJikL-A
22:09 dalek nqp/bigint: bb5f116 | jnthn++ | src/ops/nqp_bigint.ops:
22:09 dalek nqp/bigint: bigint variant of the nqp radix op.
22:09 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/bb5f11675e
22:37 bacek_at_work ~~
22:43 Coke hio.
22:52 dalek parrot: 7f1fc69 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm:
22:52 dalek parrot: Accept single char in C<case> of C<switch> statement. Closes #196
22:52 dalek parrot: review: https://github.com/parrot/parrot/commit/7f1fc692d3
23:01 cotto hi, bacek_at_work
23:01 bacek_at_work aloha, cotto
23:46 alin joined #parrot
23:48 dukeleto bacek_at_work: fancy seeing you here
23:55 whiteknight joined #parrot
23:58 dukeleto whiteknight: can you think of any easy way to parallelize the Rosella compile stage?
23:59 whiteknight dukeleto: Rosella uses distutils to build. Parallelize distutils, get paralellized Rosella build
23:59 whiteknight of course, that's not "easy". Parrot doesn't have threads yet

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

Parrot | source cross referenced