Parrot 3.10.0 "Apple Pi" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 22 November 2011.
Yuki`N Can I get the current unix time via a winxed builtin function? 00:38
dukeleto Yuki`N: ping NotFound about that 00:39
dukeleto has to head to the relatives
Yuki`N alright 00:42
will you have the opportunity to review my task? 00:43
00:51 tristan_ joined
tristan_ Is Andrew Whitworth here? 00:52
01:13 whiteknight joined
tristan_ whiteknight: Can you mark my GCI task as completed? Leto couldn't do it. See this: github.com/parrot/parrot/pull/206 01:14
whiteknight yes! Give me a minute to look at it
Yuki`N whiteknight, is there long integer support in Parrot? I completely forget. 01:16
whiteknight tristan_: Did you open a pull request? 01:17
Yuki`N: we have a BigInt PMC type, but it's optional.
you only get it if you have libgmp-dev installed on your system and configure/build parrot with it 01:18
Yuki`N I can't implement mersenne twister get_float without it.
whiteknight Yuki`N: it absolutely needs big ints?
Yuki`N I'll look for alternative ways to generate floats, but this Java implementation uses 64-bit ints. 01:19
tristan_ whiteknight: see my link. Leto already closed it. He just doesn't have permission to close it on the GCI site.
whiteknight Yuki`N: if you're on a 64-bit machine, Parrot will have 64-bit integers
01:20 alvis joined
Yuki`N whiteknight, I can't rely on that though. 01:20
whiteknight tristan_: okay, it doesn't look like dukeleto actually merged it, but I'll deal with that later. 01:21
tristan_: task closed. Congrats. Thanks for the help 01:23
Yuki`N hmmm 01:27
I need to look through the parrot opcodes for a right shift with sign extension.
01:27 jsut joined
whiteknight Yuki`N: src/ops/bit.ops 01:28
I see shr and lsr (shift right, logical shift right), etc
tristan_ whiteknight: thanks. I like how parrot uses github for their tasks. Having to submit files is so old school. 01:29
Yuki`N Would you happen to know whether or not the >> in winxed is logical or arithmetic?
whiteknight tristan_: yes, we like github a lot
Yuki`N: we can find out quick
Yuki`N I suppose so 01:30
whiteknight winxed -o - -c -e "int x; x = x << 4;"
shl
Yuki`N It's arithmetic.
whiteknight which do you need, logical? 01:31
Yuki`N Yes.
This is a pain.
Can we add an operator to winxed?
whiteknight you can do a raw parrot op with ${ } syntax
${ lsr x, y, z }
same as x = lsr y, z in PIR 01:32
msg NotFound we would like to add ops to winxed for logical shift (lsr, lsl). What do you think?
aloha OK. I'll deliver the message.
blaise does winxed not have >>= and <<= or did I just not find them? 01:37
also, &=, |=, and ^=
whiteknight blaise: I am pretty sure it does have at least some of them. Let me look
no, maybe it doesn't 01:39
you're going to have to do long-form on those operations.
blaise yeah, that's what I did for the smoothsort one 01:40
Yuki`N blaise, care that >> is arithmetic and not logical shift. 01:41
whiteknight, would I have to embed PASM to load a dynoplib?
whiteknight Yuki`N: no, there is a $load directive 01:42
or maybe $loadlib
which dynops do you need?
Yuki`N sys.ops
whiteknight $loadlib "sys_ops" 01:45
Yuki`N Alright! 01:48
Mersenne Twister implementation complete.
whiteknight :)
Yuki`N++
Yuki`N I need dukeleto to approve my current task though.
And he's travelling.
whiteknight you're going to get to tell your algorithms professor how much ass you kicked
let me look at it
the libgit2 one? I just closed it 01:49
BAM
01:50 jsut_ joined
Yuki`N whiteknight, github.com/nol888/Rosella/commit/9...a7309bef49 01:50
BAM.
I got the build working 100% though. Made the Makefile symlink rosella -> Rosella/rosella 01:51
whiteknight oh, clever 01:53
Yuki`N Meanwhile I requested claim on your mersenne twister task. 01:55
www.google-melange.com/gci/task/vie...11/7172206
.c
whiteknight accepted. I would wish you luck, but... 01:58
blaise: I just ran the smoothsort benchmarks. 210% slower than my quicksort 02:01
so....there's room for improvement
:)
I'm going to play with it a little bit, see what I can do
blaise wow, that isn't very good 02:02
maybe it's the arithmetic shift thing?
^ not a serious suggestion 02:04
whiteknight I got it down to 57% slower by turning LP into a class attribute like you intended 02:07
blaise wow, dramatic
dalek sella: 47b410f | (Blaise Ritchie)++ | benchmarks/query/sort.winxed:
Added smoothsort
sella: c4246e0 | (Blaise Ritchie)++ | benchmarks/query/sort.winxed:
Added back old code
sella: 01fe811 | Whiteknight++ | benchmarks/query/sort.winxed:
Merge in smoothsort implemenation from blaise++. Add it to the list of benchmarks that we run (hint: it's very poor)
sella: ff5ed58 | Whiteknight++ | benchmarks/query/sort.winxed:
Fix indending on smoothsort. Use class attributes instead of recreating the LP and other array every time we call a function.
Yuki`N >recreating the LP and other array 02:08
oh god functional programming.
blaise I couldn't get the class attribute thing working correctly
kept throwing errors at me, so I ended up doing this so I could test the implementation
four-space indentation? 02:10
02:15 Nol888 joined 02:17 particle joined
whiteknight blaise: yeah, I've been using 4 space indents, and it's easier just to keep consistent at this point 02:18
blaise reasonable, any future work for this I do I'll keep it four space 02:20
whiteknight ha! Smoothsort is now 1% faster than the built-in quicksort for random data 02:22
and 8% faster than Timsort
Smoothsort appears to really dislike reverse-sorted lists
so it does very bad there
Nol888 timsort performs poorly on completely random data, though. 02:26
whiteknight right, every sort has inputs that it performs poorly on 02:28
timsort does very well if the data is mostly sorted, or mostly reverse-sorted
blaise smoothsort does well if it's mostly sorted, doesn't it? 02:30
whiteknight I'm running some benchmarks now, I'll show you the results 02:32
...at least, I would show you but my mouse stopped working 02:34
(my laptop)--
02:37 whiteknight joined
whiteknight gist.github.com/1390508 02:37
smoothsort blows quicksort out of the water for the presorted array. Does the worst on the reverse-sorted array. Does in the ballpark well for the random array 02:38
timsort does great on the presorted, great on the reverse-sorted, and terrible on the random
dalek sella: ee8e2e0 | Whiteknight++ | / (2 files):
Fix qsort so it goes in the right direction. Add pre-sorted benchmarks for sort algorithms
02:42
whiteknight Okay, I think I'm shutting down for the night. I will *try* to be on tomorrow morning to approve/accept tasks. I will *try* to be on tomorrow night at some point to do the same
no promises, the holiday is always crazy
goodnight 02:44
03:14 jsut joined
dukeleto ~~ 03:27
dukeleto in transit, tethering, so I am not clogging GCI 03:29
msg whiteknight i want to use the source of your tasks and tweak them, do they live in a repo? 03:52
aloha OK. I'll deliver the message.
04:34 RobertLJ1 left 05:07 rfw joined 06:30 contingencyplan joined 06:35 contingencyplan joined 08:23 mj41 joined 08:28 lucian joined 09:15 lucian joined 09:45 mj41 joined 10:13 jsut_ joined
dalek p/nci: 329046c | moritz++ | Configure.pl:
Fix the build on Linux amd64/gcc

Without this fix, "make" in the dyncall-0.6 directory would copy the .a files into a build_out/*/ dir, and thus the nqp ops compilation failed.
I hope this doesn't break the build on other platforms.
10:50
11:10 whiteknight joined
whiteknight good morning, #parrot 11:34
11:37 bacek joined
dalek sella: de587e3 | Whiteknight++ | / (4 files):
Use instead of 'using extern', as per Winxed deprecation. dukeleto++ for pointing this out. Fixes issue #34
11:42
sella: eb39b3f | Whiteknight++ | / (4 files):
Merge pull request #33 from nol888/master

Add Mersenne Twister implementation.
Yuki'N++ for the excellent work.
11:46
sella: 636fe72 | Whiteknight++ | examples/mersenne.winxed:
Fix compilation warning on the mersenne example using a forward declaration
11:52
sella: 689ae06 | Whiteknight++ | src/unstable/random/ (2 files):
A few small code cleanups to the new random lib
11:53
kudo/nci: 1340fa6 | jnthn++ | src/core/Parameter.pm:
Parameter.type should return the type, not its name.
11:59
p/nci: e11c46a | jnthn++ | src/ops/nqp_dyncall.ops:
Decontainerize passed arguments.
12:12 Psyche^ joined 13:22 JimmyZ joined 13:50 mj41 joined
dalek nxed: 91e4694 | NotFound++ | t/advanced/02postincdec.t:
typo in test (how I didn't notice it?)
14:10
nxed: 38ff428 | NotFound++ | examples/Mysql.winxed:
fix StructView used for results in example Mysql
14:11
nxed: 3080ce3 | NotFound++ | / (3 files):
operator >>> (unsigned shift right)
14:18
nxed/inline: cfc0ece | NotFound++ | t/advanced/02postincdec.t:
some tests for post ++ and -- with var
14:51
nxed/inline: 91e4694 | NotFound++ | t/advanced/02postincdec.t:
typo in test (how I didn't notice it?)
nxed/inline: 38ff428 | NotFound++ | examples/Mysql.winxed:
fix StructView used for results in example Mysql
nxed/inline: 3080ce3 | NotFound++ | / (3 files):
operator >>> (unsigned shift right)
nxed/inline: 885fc28 | NotFound++ | / (8 files):
resolve merge master conflict
15:10 schmooster joined 16:52 bluescreen joined
dalek p/nci: 3587326 | jnthn++ | src/ops/nqp_dyncall.ops:
Fix string passing memory leak.
16:57
p/nci: 497c48b | jnthn++ | src/ (3 files):
Support user-chosen calling conventions (or at least a few extra ones).
nxed: 5395518 | NotFound++ | Makefile:
change test Makefile targets:

  'test0' tests stage 0
older and not used targets deleted
17:07
p/nci: 896015d | jnthn++ | src/ops/nqp_dyncall.ops:
Make it so passing a string type object will lead to a null being passed.
17:20
17:25 cosimo joined 17:35 cosimo joined 17:38 fperrad joined 18:51 mj41 joined
dalek kudo/nom: d5d5a3f | moritz++ | src/core/ (2 files):
Merge pull request #42 from lumimies/nom

Fix gist/perl for Junction and Bool
19:52
20:10 perlite_ joined
blaise for www.google-melange.com/gci/task/vie...11/7185217 if I don't know what a function does, is there some kind of documentation somewhere to "use better judgement" to name things? 20:43
NotFound blaise: that paragraph says "ask for help" 20:45
20:45 tristan_ left
blaise oh, I see that now 20:46
would include/parrot/interpreter.h have to be editted as well? it's not mentioned, but it seems like it would make sense to do so 20:48
NotFound blaise: usually you don't need to edit it, headerizer takes care. 20:49
blaise oh, didn't know that parrot's .h files were auto generated 20:50
NotFound Auto edited may be a better description. 20:51
blaise so it really is exactly what the task says? 20:52
NotFound I think so 20:54
blaise are the functions called anywhere?
NotFound The task says "Update all references to these functions throughout the codebase and test suite." 20:58
So assume any non static function can be called from anywhere. 20:59
blaise okay
could probably find all calls with grep/find
tadzik use ack
dalek kudo/nom: de3997a | moritz++ | src/core/Backtrace.pm:
make Backtrace.new() DWIM
21:01
21:06 lucian joined 21:07 contingencyplan joined
dalek p/nci: 5899327 | jnthn++ | / (3 files):
Start to stub in a CStruct REPR.
21:10
p/nci: 9f0fc01 | jnthn++ | tools/build/Makefile.in:
Add some missing makefile deps.
p/nci: c7250db | jnthn++ | src/6model/reprs/CStruct.h:
Sketch out more of how CStruct probably needs to end up looking once it supports the bits it'll need to.
p/nci: fabd74f | jnthn++ | src/ops/nqp_dyncall.ops:
An (untested) shot at getting the native call handling side of passing a CStruct in place.
21:28 PacoLinux joined 21:52 Khisanth joined
dalek p/nci: 02dca35 | jnthn++ | src/6model/reprs/CStruct. (2 files):
Steal some bits from P6opaque and twiddle with them to start getting things into a more CStruct-ish shape.
22:40
p/nci: 878aafe | jnthn++ | src/6model/reprs/CStruct. (2 files):
Get allocationy bits of CStruct in place, or at least for the basic cases.
p/nci: c14163d | jnthn++ | src/ops/nqp_dyncall.ops:
Handle cstruct as one of the types we now recognize.
23:15
p/nci: ceaf986 | jnthn++ | src/6model/reprs/CStruct.c:
Fix struct offset computation; add the attribute lookup bits we need for the basic int/num attributes we support thus far.