|
Parrot 3.9.0 "Archaeopteryx" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 19 October 2011. |
|||
|
00:02
rfw joined
|
|||
| bacek_at_work | dukeleto, erm. I'm at work right now :) | 00:24 | |
| Coke | bacek_at_work: добро пожаловать | 00:38 | |
| bacek_at_work | Coke, спасибо :) | ||
| Coke | ooh, I actually KNOW that word. ;) | 00:39 | |
| (though I didn't know that's how it was spelled. ;) | 00:40 | ||
| 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 | |
| for fixing things like NULL/STRINGNULL, etc | |||
| bacek_at_work | github.com/bjpop/berp/ "Python 3 implementation in Haskell" | 00:59 | |
|
01:13
jsut joined
01:15
benabik joined
|
|||
| 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 | ||
| cotto | same here | 01:18 | |
| whiteknight | apparently it's been used to make non-trivial edits to the linux kernel, so that's reassuring | ||
| cotto | yes | ||
| that's what got me to look at it in the first place | 01:19 | ||
| and the lwn article | |||
| The reason I suggested a test is because something useful could be written with <10 lines of Perl 5. | 01:22 | ||
| full-on static analysis would be nice though | 01:23 | ||
|
01:27
nbrown joined
02:34
GodFather joined
02:35
GodFather joined
|
|||
| cotto | 'evening | 02:47 | |
| How is berp's performance? | 02:50 | ||
| nm. It doesn't seem to be especially complete. Asking about performance would be premature. | 02:51 | ||
| still pretty cool | 02:52 | ||
|
02:53
Tene joined
|
|||
| 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:37 | |
| Coke | open a RFE ticket on github? | 03:42 | |
| OOC, couldn't you prototype the op in perl6.ops? | |||
| bacek_at_work | japhb, with 'utf-8' internally encoded strings it will be slow even on parrot level | 04:28 | |
|
04:31
zpmorgan joined
04:45
TonyC joined
04:52
nopaste joined
05:03
Khisanth joined
|
|||
| 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 | |
| (And that's after I optimized the loop) | |||
| Coke, OK, will look there. | 05:23 | ||
|
05:46
wagle joined
06:05
wagle joined
|
|||
| dalek | p/bigint: 6426a56 | moritz++ | src/ (2 files): nqp_bigint_bool op (checks != 0) |
07:14 | |
|
08:08
alin joined
08:39
mj41 joined
|
|||
| dalek | p/bigint: 1db0ea8 | moritz++ | src/ (2 files): fix a few ops, moritz-- |
08:51 | |
|
09:14
lucian joined
09:43
mj41 joined
|
|||
| dalek | kudo/bigint: fb5b1b9 | moritz++ | / (2 files): start to switch to bigint ops This breaks spectest horribly, and I do not understand the failure mode It says "get_boxed_ref could not unbox for the given representation" in sub infix:<->, but when I test infix:<-> in isoluation, I cannot reproduce that failure mode |
10:22 | |
|
10:58
alvis joined
10:59
ambs joined
11:06
particle joined
11:07
nbrown joined
11:20
jsut_ joined
11:31
Khisanth joined
11:32
schmooster joined
12:11
Psyche^ joined
12:26
bluescreen joined
12:49
alin joined
|
|||
| dalek | kudo/bigint: 88158ac | moritz++ | src/core/Int.pm: a few fixes, still completely broken |
13:23 | |
|
13:27
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 13:28 | |
|
13:47
alin joined
|
|||
| mls | hi whiteknight! How are you doing? | 13:58 | |
|
14:02
benabik joined
|
|||
| benabik | o/ #parrot | 14:04 | |
| mls | \\o benabik! | 14:05 | |
| (afk for a while) | 14:11 | ||
| whiteknight | good morning, mls. I'm doing well. you? | 14:15 | |
|
14:17
man_in_shack left
|
|||
| dalek | kudo/bigint: 513f055 | moritz++ | src/core/Int.pm: switch more ops to bigint |
14:17 | |
|
14:22
NotFound_b joined
|
|||
| dalek | nxed: c70cc2e | NotFound++ | winxedst1.winxed: improve constant propagation in string concatenations |
14:24 | |
|
14:58
jsut joined
|
|||
| moritz | en.wikipedia.org/wiki/Tim_sort might be interesting | 15:25 | |
| whiteknight | I was looking at implementing it for parrot, but ran out of tuits at the time | 15:33 | |
| but yes, it does look very interesting | |||
| dalek | nxed: 0561450 | NotFound++ | winxedst1.winxed: simplify the construction of string literals during optimization |
15:39 | |
| benabik | Visual explanation of TimSort: corte.si/posts/code/timsort/index.html | 15:53 | |
| dukeleto | ~~ | 16:24 | |
| whiteknight | hello dukeleto | 16:39 | |
| dalek | nxed: fdf75e0 | NotFound++ | winxedst1.winxed: optimize a bit int, float and string initializers |
16:48 | |
| p/bigint: 302cc17 | jnthn++ | src/ (2 files): Merge branch 'bigint' of github.com:/perl6/nqp into bigint |
|||
| dukeleto | whiteknight: wazzup | 16:55 | |
| whiteknight | dukeleto: everything and nothing all at once. you? | 16:56 | |
| 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:03 | |
| whiteknight | yeah, I saw that this morning. awesome | 17:04 | |
| dalek | nxed: 4f1c542 | NotFound++ | / (4 files): update NEWS and generated files |
17:21 | |
| rrot: 1ee1c09 | nine++ | t/fullharness: Fix job concurrency in fulltest |
17:27 | ||
| rrot: de1cf6d | nine++ | / (4 files): Merge branch 'master' of github.com:parrot/parrot |
|||
| rrot/threads: 6912133 | nine++ | src/thread.c: Don't exit a thread if alarms are still active, fixing sleep Currently does a busy wait till alarms expire. Full implementation will sleep until notified by the main thread. |
|||
| rrot/threads: e034889 | nine++ | / (3 files): Fix sleep in threads Only up to 4 threads are now created. These threads are stored in a threads array and get notified on alarms by the main thread writing a byte to the notifier pipe of the thread. TODO: implement on Windows TODO: only write to the pipe if the thread is actually waiting for alarms |
|||
| rrot/threads: 1ee1c09 | nine++ | t/fullharness: Fix job concurrency in fulltest |
|||
| rrot/threads: 6b23e73 | nine++ | t/fullharness: Merge branch 'master' into threads |
|||
| whiteknight | nine++ | 17:28 | |
| dalek | rrot: c7fd2f9 | NotFound++ | ext/winxed/ (2 files): update winxed snapshot to 4f1c542189: - better compile time evaluation of builtins - minor fixes and optimizations |
17:31 | |
|
17:32
bluescreen joined
|
|||
| 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? | ||
| nine | tadzik: en.wikipedia.org/wiki/Zagreb | 17:35 | |
| whiteknight | I would love to go to a rammstein concert one day | 17:39 | |
| tadzik | oh, yeah, we call that "Zagrzeb" :) | ||
| nine | tadzik: how do you pronounce that? | 17:43 | |
| tadzik | erm, "Zagrzeb"? :P | ||
| the same as "Zagżeb" :> | |||
| nine | tadzik: ah, of course :) | ||
| tadzik | did you see the Brzęczyszczykiewicz video? | ||
| cotto | ~~ | 17:48 | |
| tadzik | ~~ | ||
| nine | tadzik: no | 17:53 | |
| tadzik | nine: www.youtube.com/watch?v=ftrqO-jkMpE | 18:01 | |
| tl;dr: don't ask a Polish guy how to pronounce stuff :P | |||
| dalek | kudo/bigint: 7b75f75 | jnthn++ | src/core/Int.pm: Remove accidental boolification. |
18:02 | |
| nine | tadzik: epic | 18:05 | |
| tadzik | most of the old Polish comedies are awesome | ||
|
18:57
mj41 joined
|
|||
| dalek | nxed: b3a0908 | NotFound++ | t/basic/01initialize.t: test initializers |
18:59 | |
| nxed: 1a6730a | NotFound++ | winxedst0.cpp: improve mixed type initializers in stage 0 |
|||
|
19:22
bluescreen joined
19:27
rfw joined
19:35
contingencyplan joined
19:37
mj41 joined
19:51
plobsing_ joined
|
|||
| dukeleto | msg NotFound any help with github.com/letolabs/parrot-libgit2/issues/8 would be really appreciated. Really stuck. | 19:57 | |
| aloha | OK. I'll deliver the message. | ||
| benabik | Hm. Installing libgit2 prior to trying to build parrot-libgit2 might be useful. | 20:10 | |
| homebrew++ # easy dependencies | |||
| Hm. And rosella. | 20:13 | ||
|
20:14
whiteknight joined
|
|||
| dukeleto | woot. Parrot was accepted into GCI this year! | 20:18 | |
| benabik: yeah, sorry about that | |||
| benabik: bundling rosella with parrot-libgit2 kind of failed | |||
| benabik: i almost added it as a git submodule | 20:19 | ||
| benabik: if you have tuits to do that, i would surely accept the patch :) | |||
| benabik | dukeleto: I barely have the tuits to do what I'm doing. ;-) | ||
| dukeleto: I don't mind installing dependencies, I just forgot that it would be needed. | 20:20 | ||
| 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. | |||
| 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 :) | ||
| benabik: i use winxed setup.winxed build | |||
| benabik: i only use the Makefile for updating the nci file (for new versions of libgit2/etc) | 20:22 | ||
| benabik: but yes, the build system is confusing :) | |||
| benabik | Ahhhhh… I tend towards make when available. You could do whiteknight's trick of just using make to call setup.winxed. | ||
| dukeleto | benabik: the setup.winxed came after the Makefile, and does almost everything (accept the nci file generation) | ||
| except, rather | 20:23 | ||
| stupid languages | |||
| benabik | How does parrot detect libffi? | 20:25 | |
| Ah. OS X puts ffi.h in ffi/ffi.h | 20:26 | ||
| tadzik | dukeleto: yay! \\o/ | 20:27 | |
| 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:36 | |
| 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 | ||
| whiteknight | :) | 20:39 | |
| urg, every time I see a cursor in sql code, I weep a little | |||
| 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 | ||
| benabik adds Configure.pl voodoo to find libffi. Whee. | 20:42 | ||
| I've never dealt with SQL cursors. This sounds like a goodness. | 20:44 | ||
| whiteknight | benabik: if you had to track the status of an item in an ecommerce system, how would you do it? | 20:45 | |
| statuses like "purchased", "shipped", "returned", etc | |||
| 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. | ||
| benabik | \\o/ | ||
| 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..... | ||
| 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 | ||
| 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 | |
| Bitfields don't play well with SELECT. | |||
| 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 | ... | ||
| whiteknight | srsly | ||
| tadzik | eww | ||
| 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. | ||
| But, srsly? | |||
| 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:51 | |
| tadzik | :) | 20:52 | |
| 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 | ||
| benabik wants ops2c to burn in a fire, but also doesn't want/have the time to create a replacement for it. | |||
| whiteknight | ops2c was previously written in perl5 | ||
| I seem to remember cotto complaining about the quality of the older version, but I don't know first hand | 20:54 | ||
| if anybody wants to put together a replacement, I would be +1 to that | |||
| benabik | I think it's scheduled for replacement in mythical M0-land. :-/ | ||
| whiteknight | yeah, we'll work on that right after we're done feeding the unicorn, the griffin, and the sphynx | 20:58 | |
| benabik | :-D | ||
| cotto | The code is better, but it's still no a compiler. | 21:06 | |
| *not | |||
| NotFound_b | dukeleto: ping | 21:10 | |
| benabik | dukeleto: re: parrot-libgit2 issue 8. Winxed's error is correct. Git2.Index doesn't have a ptr attribute. | 21:16 | |
| 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 | |
|
21:21
ambs joined
|
|||
| 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 | |
| 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 | |||
| let the compiler do the inlining, and spare ops2c the heartache | |||
| blah blah blah but GCC doesn't do inlining between compilation units blah blah blah | 21:24 | ||
| anyway, it's time for me to go. Later | |||
| dukeleto | NotFound_b: pong | 21:31 | |
| NotFound_b | dukeleto: setup build does not build all files | 21:32 | |
| dukeleto | NotFound_b: what does it leave out? | ||
| NotFound_b | Git2/Cache and Git2/RefCache | 21:33 | |
| dukeleto | NotFound_b: are you on the latest commit on master? | 21:40 | |
| NotFound_b | dukeleto: I've cloned just now | ||
| dukeleto | NotFound_b: you are using setup.winxed or the Makefile ? | 21:43 | |
| NotFound_b | setup.winxed | ||
| dukeleto | interesting video about IonMonkey: www.youtube.com/watch?v=dPlpjJikL-A | 22:05 | |
| dalek | p/bigint: bb5f116 | jnthn++ | src/ops/nqp_bigint.ops: bigint variant of the nqp radix op. |
22:09 | |
| bacek_at_work | ~~ | 22:37 | |
| Coke | hio. | 22:43 | |
| dalek | rrot: 7f1fc69 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm: Accept single char in C<case> of C<switch> statement. Closes #196 |
22:52 | |
| cotto | hi, bacek_at_work | 23:01 | |
| bacek_at_work | aloha, cotto | ||
|
23:46
alin joined
|
|||
| dukeleto | bacek_at_work: fancy seeing you here | 23:48 | |
|
23:55
whiteknight joined
|
|||
| dukeleto | whiteknight: can you think of any easy way to parallelize the Rosella compile stage? | 23:58 | |
| whiteknight | dukeleto: Rosella uses distutils to build. Parallelize distutils, get paralellized Rosella build | 23:59 | |
| of course, that's not "easy". Parrot doesn't have threads yet | |||