Camelia, the Perl 6 bug

IRC log for #parrot, 2012-06-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
02:00 seiferteric joined #parrot
03:03 elmex_ joined #parrot
03:19 seiferteric hello, I have read parrot is geared towards dynamic languages, would this have any impact and static languages targeted at parrot?
04:27 alvis msg kid51 Will do, and thank you.
04:27 aloha OK. I'll deliver the message.
04:38 EEPS joined #parrot
06:36 birdwindupbird joined #parrot
07:01 brrt joined #parrot
07:32 particle joined #parrot
08:14 lucian joined #parrot
08:19 kjs joined #parrot
08:21 kjs_ joined #parrot
08:23 contingencyplan joined #parrot
09:19 kjs joined #parrot
09:29 kjs aloha, nopaste?
09:29 aloha kjs: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
09:29 nopaste "kjs" at 193.1.104.2 pasted "verbose output perl configure zlib gettext" (127 lines) at http://nopaste.snit.ch/144331
09:36 schm00ster joined #parrot
10:20 kjs joined #parrot
10:20 kjs aloha, nopaste?
10:20 aloha kjs: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
10:21 nopaste "kjs" at 193.1.104.2 pasted "perl Configure with perl 5.16 built from source" (295 lines) at http://nopaste.snit.ch/144338
10:22 nopaste "kjs" at 193.1.104.2 pasted "perl configure output verbose with perl 5.16" (129 lines) at http://nopaste.snit.ch/144339
10:46 JimmyZ joined #parrot
10:55 kjs hi JimmyZ
10:59 JimmyZ hello kjs
10:59 JimmyZ kjs: I found t/switch is broken
11:01 kjs mm bummer.
11:05 kjs JimmyZ: I messed up my perl installation so i cant testit myself
11:06 JimmyZ kjs: :)
11:16 kjs JimmyZ: does it run through M1?
11:16 kjs I mean, does M1 give an error on t/switch
11:16 JimmyZ kjs: nope
11:17 kjs mm ok
11:17 kjs I don't know then
11:17 kjs I committed 1 or 2 small changes in the last few hours
11:20 kjs JimmyZ: fixed my perl install. it runs here (t/switch)
11:21 kjs can you do make clean and try again?
11:21 JimmyZ kjs: it outputs wrong
11:21 kjs the Makefile doesn't have all dependencies
11:24 JimmyZ kjs: try ./run_m1.sh t/switch.m1
11:24 kjs i run make test
11:24 kjs ah your'e right
11:24 kjs might have to do with changtes to break...
11:24 kjs lemme look
11:25 kjs JimmyZ: that t/switch fails doesnt become apparent with make test.
11:25 kjs so it's false confidence...
11:25 JimmyZ kjs: yeah
11:29 dalek m1: cac108e | kjs++ | src/ (3 files):
11:29 dalek m1: some assertions and try-outs.
11:29 dalek m1: review: https://github.com/parrot/m1/commit/cac108ed5d
11:31 kjs JimmyZ: i think i know what it is
11:32 JimmyZ kjs: great. will it be hard fix?
11:32 JimmyZ kjs: I saw it that m1 lost m0 code
11:33 kjs what do you mean?
11:33 kjs i thought it was an easy fix; seems a bit more difficult now.
11:33 JimmyZ kjs: m1 only outputs the first expr in the 'case'
11:34 kjs indeed
11:34 kjs you're correct. there was a funciton gencode_exprlist, and i removed it
11:34 kjs but apparently it's still needed here
11:34 kjs so i'm replacing it
11:34 JimmyZ oh
11:34 kjs but now i'm runing into other issues.
11:34 kjs but i think i knowwhat that is
11:34 kjs gimme a few min
11:35 JimmyZ a case block ?
11:36 kjs i removed exprlist in favour of block; but switch "blocks" are not real blocks, as found in a for or while loop
11:36 kjs a for or while loop just has a statement as a "block"
11:37 kjs but because a "block" ISA "statement" that works
11:37 kjs but in switch, it's just a "fall through"
11:37 kjs fix coming up.
11:37 dalek m1: 947a950 | kjs++ | src/ (2 files):
11:37 dalek m1: fix switch test. thanks to jimmy for reporting.
11:37 dalek m1: review: https://github.com/parrot/m1/commit/947a9502e1
11:37 kjs JimmyZ: is it possible to make "make test" detect failures like this?
11:38 kjs it's quite important, because I don't commit unitl make test is successful
11:38 kjs so i depend a lot on it
11:39 kjs oh i forgot the karma
11:39 kjs jimmy++
11:40 mtk0 joined #parrot
11:48 JimmyZ kjs: I don't know. I hadn't find the way to detect failures like this
11:48 JimmyZ *found
11:48 kjs i thougth the TAP protocol should detect that no?
11:48 kjs it needs "ok 1" etc.
11:49 JimmyZ kjs: I thought so
11:57 dalek m1: 86b9901 | jimmy++ | t/switch.m1:
11:57 dalek m1: improved t/switch.m1 a bit
11:57 dalek m1: review: https://github.com/parrot/m1/commit/86b9901aa6
11:58 JimmyZ kjs: this makes sure TAP protocol could detect it
12:02 kjs great, thanks
12:02 kjs i'll read a bit on TAP to see how this can be fixed structured way
12:02 kjs *in a
12:02 JimmyZ good
12:05 brrt joined #parrot
12:11 mtk joined #parrot
12:12 PacoAir joined #parrot
12:56 PerlJam joined #parrot
13:07 schm00ster joined #parrot
13:09 mtk joined #parrot
13:09 Psyche^ joined #parrot
13:16 kjs joined #parrot
13:21 eric joined #parrot
14:28 jsut joined #parrot
15:14 dmalcolm joined #parrot
15:45 jashwanth joined #parrot
15:49 jashwanth hello dukeleto
15:53 contingencyplan joined #parrot
15:56 dukeleto jashwanth: hola
16:03 dalek m1: 2d85b04 | kjs++ | src/m1.l:
16:03 dalek m1: add lexer support for binary numbers: int x = 0b0001010101
16:03 dalek m1: review: https://github.com/parrot/m1/commit/2d85b045fa
16:03 brrt left #parrot
16:10 dalek m1: 8ab8b23 | kjs++ | src/m1.l:
16:10 dalek m1: add support for hex and oct too.
16:10 dalek m1: review: https://github.com/parrot/m1/commit/8ab8b23ad2
16:14 dalek m1: 69dae17 | kjs++ | src/m1.l:
16:14 dalek m1: clean up lexer.
16:14 dalek m1: review: https://github.com/parrot/m1/commit/69dae17625
16:19 whiteknight joined #parrot
16:23 dalek m1: 47d1de6 | kjs++ | src/ (4 files):
16:23 dalek m1: add the >>> operator. Implemeng code generator for >>, <<, >>>.
16:23 dalek m1: review: https://github.com/parrot/m1/commit/47d1de6adb
16:26 dalek website: Jashwanth++ | Testing Part
16:26 dalek website: http://www.parrot.org/content/testing-part
16:26 kid51 joined #parrot
16:26 whiteknight good afternoon, #parrot
16:28 kid51 msg kjs paste http://nopaste.snit.ch/144339 shows that your 'gettext' and 'zlib' are not built for x86_64.  Hence, error messages and failure to register their presence is predictable.  Suggest non-fink builds.
16:28 aloha OK. I'll deliver the message.
16:29 kjs kid51: thanks. I'll try that.
16:30 jashwanth hello whiteknight
16:30 dalek m1: 543a5d5 | kjs++ | src/ (2 files):
16:30 dalek m1: handle chars properly. fix segfault.
16:31 dalek m1: review: https://github.com/parrot/m1/commit/543a5d539d
16:39 darbelo joined #parrot
16:41 whiteknight hello jashwanth
16:59 benabik ~~
17:10 dukeleto jashwanth: what are you working on now?
17:12 jashwanth dukeleto, actually had started to write tests but to do that whiteknight had insited me to change the code to make it as a library
17:12 dukeleto jashwanth: huh?
17:12 * dukeleto backlogs
17:13 pmichaud anyone remember what Parrot's recursion limit is?
17:14 whiteknight pmichaud: I would have to search for it
17:14 whiteknight pmichaud: Are you running into it?
17:14 dukeleto jashwanth: it is good to see you write blog posts. In the future, please add a few links to the blog post, such as links to your commits on github and the projects that you mention
17:14 dukeleto pmichaud: include/parrot/sub.h
17:14 dukeleto 109:#define RECURSION_LIMIT 1000
17:14 pmichaud we have a test case that ran into it on #perl6, yes.
17:15 pmichaud ...1000?
17:15 pmichaud that's pretty... small.
17:15 whiteknight yes, that does seem unnecessarily small
17:15 pmichaud okay, that makes me feel better.
17:15 tuxit joined #parrot
17:15 whiteknight pmichaud: Feel free to bump it if you need it up
17:15 pmichaud We can bump up the recursion limit from Rakudo.
17:15 whiteknight okay
17:16 dukeleto pmichaud: i guess nothing in the parrot test suite hits it so we didn't notice. I am sure we would take a patch to increase it if you feel the average user will bump against that
17:16 whiteknight I suspect that recursion limit isn't something we should enforce by default, unless in a security context that requires it
17:16 pmichaud dukeleto: there are tests for the recursion limit in the suite, yes.  :-)
17:16 dukeleto pmichaud: but yes, it is probably best for Rakudo to configure Parrot with a recursion limit it wants
17:17 Coke this conversations sounds reallly familiar.
17:17 jashwanth dukeleto, we had an error on the other day regarding Rosella how do we fix that?
17:17 dukeleto pmichaud: if it is currently not simple to set that limit via Configure.pl, that is definitely a patch we would accept
17:17 pmichaud dukeleto: it's no problem, since we can change the limit dynamically at runtime
17:17 dukeleto jashwanth: let's not care about it for now. I want you to make iterative progress instead of chasing hairy yaks. You can just run your test with: winxed t/winxed/foo.t
17:17 pmichaud we'll just do that as part of compiler startup/init
17:18 pmichaud that also means that someone invoking rakudo can potentially change the recursion limit from rakudo's command line, instead of having it baked into the parrot binary
17:18 jashwanth dukeleto, ok
17:18 pmichaud or even via a function we expose to the p6 programmer
17:18 dukeleto pmichaud: sounds flexible and yet dangerous...
17:19 pmichaud anyway, this answers my question very well -- thanks!
17:23 jashwanth dukeleto, regarding the tests how do you want me to do it a little detailed please
17:28 dukeleto jashwanth: http://irclog.perlgeek.de/p​arrot/2012-06-15#i_5730712
17:29 dukeleto jashwanth: i see your firsttest.t
17:30 dukeleto jashwanth: what happens when you run winxed t/winxed/firsttest.t ?
17:31 dukeleto jashwanth: does it work for you?
17:31 jashwanth dukeleto,yes
17:33 dukeleto jashwanth: hmm, looks like i need to recompile my parrot with libffi (which I thought it had) for it to work correctly
17:34 dukeleto jashwanth: i am a bit confused. Your test uses parrot-linear-algebra, not LAPACK
17:35 jashwanth dukeleto, so do you want me to write the test for dgetrf simarly to load this function from lapack or use the code from Double.winxed
17:35 dukeleto jashwanth: so yes, your test passes, but for the wrong reason :)
17:35 dukeleto jashwanth: i think you are still confused about the difference between implementation and tests
17:35 dukeleto jashwanth: the implementation makes something work. The test shows that the implemention works correctly and as you expect.
17:36 dukeleto jashwanth: the implementation (Double.winxed) is what knows how to correctly call dgetrf (passing arguments and all that)
17:36 dukeleto jashwanth: the test for Double.winxed calls the dgetrf function on various inputs and makes sure the outputs are correct
17:36 dukeleto jashwanth: does that make more sense?
17:36 jashwanth dukeleto, yes
17:37 dukeleto jashwanth: the structure of your test is good, but you need to actually call the degetrf function and inspect the return value
17:37 jashwanth but can I know what this command is used for"$load "./src/Double.pbc";"
17:37 dukeleto jashwanth: i think whiteknight was showing you how the test would work with PLA, which is a good example. But it is not a test for parrot-lapack
17:38 jashwanth yes it is not
17:38 dukeleto jashwanth: that loads the bytecode of ./src/Double.winxed. When you run "winxed setup.winxed build", that is what turns Double.winxed into Double.pbc
17:38 dukeleto jashwanth: *.winxed is source code, which you can feed to winxed, which has to turn it into bytecode before it runs
17:38 jashwanth dukeleto, so does it use the byte code when it runs
17:39 dukeleto jashwanth: when you convert *.winxed -> *.pbc, you can run the parrot binary on the *.pbc, without turning source code into an executable, which is much faster
17:39 dukeleto jashwanth: parrot is a virtual machine that runs bytecode. If you don't give it bytecode, it has to turn your sourcecode into bytecode.
17:39 dukeleto jashwanth: you can think of bytecode as basically a linked-list of stuff to do, if that helps
17:41 jashwanth dukeleto, yes so it loads the bytecode of Double.winxed then where or how can I make use of this in my test
17:44 jashwanth dukeleto, my doubt  is do I use the code loaded from Double.pbc
17:50 jashwanth dukeleto, did you get my doubt?
17:54 jashwanth dukeleto, am I wrong in my thinking ??
17:54 dukeleto jashwanth: yes, you use the code loaded from Double.pbc (also known as the implementation)
17:55 jashwanth dukeleto, do I use it in test file
17:56 dalek parrot: ea4450c | dukeleto++ | ChangeLog:
17:56 dalek parrot: [doc] Add some beef to the changelog
17:56 dalek parrot: review: https://github.com/parrot/parrot/commit/ea4450c599
17:57 dukeleto jashwanth: $load "./src/Double.pbc" loads the code you wrote in Double.winxed so that you can use it from your test
17:57 dukeleto jashwanth: does that answer your question?
17:57 dukeleto jashwanth: also, it is good to actually write some code, see how it fails and if you can't figure out why it fails, paste/gist the exact error message and then ask for help in here
17:57 jashwanth dukeleto, yes it surely does
17:58 awwaiid joined #parrot
17:58 jashwanth dukeleto, but now how can I use it in here in the test file
17:59 dukeleto jashwanth: $load "./src/Double.pbc" at the top of the file, then just call dgetrf later on in the file. Try it and see what happens.
18:00 dukeleto jashwanth: your job as a gsoc student is to try various things to see what works. If you get stuck on something, then you ask us
18:00 dukeleto jashwanth: but asking us before you try is not good. It means you aren't learning how to learn.
18:00 jashwanth dukeleto, ok will try to do that sorry
18:01 dukeleto jashwanth: no worries! We are here to help. But we want you to try various things, then ask us when something doesn't work
18:01 dukeleto jashwanth: don't be afraid to ask questions! But do try a few things beforehand. If you tell you everything, then you aren't having as much fun as you could have :)
18:01 jashwanth dukeleto, ok will try the ways if any problem pops will ask you
18:02 dukeleto s/If you tell/If we tell/
18:02 jashwanth dukeleto, yes get the point
18:03 rich joined #parrot
18:06 dukeleto jashwanth: also, i can do code reviews. If you are not sure about code, write a few lines, commit, push to github and ask me to review
18:07 jashwanth dukeleto, yes thanks thats fine
18:09 kjs joined #parrot
18:09 dukeleto jashwanth: also, you should send me a progress report each day, via email. That way, I can answer your questions if I don't catch you on IRC
18:10 jashwanth dukeleto, ok fine am here almost here every day will do that no problem
18:12 kjs dukeleto: hi
18:12 dukeleto kjs: wazzup
18:13 kjs hi there. i seem to remember that one milestone was to implement a CRC algorithm on M0
18:13 NotFound dukeleto: puting a bytecode file in a dierctory called "src" doesn't look right.
18:13 kjs bitwise ops and bitwise constants (0b010101) are implemented in M1
18:13 whiteknight NotFound: baby steps
18:13 dukeleto kjs: indeed it was. That was what allison, cotto and I agreed upon being a litmus test for m0 being a viable language
18:14 kjs ah right.
18:14 dukeleto NotFound: agreed. We are just trying to get off the ground here and not worrying about various little nits :)
18:14 NotFound Ok
18:14 dukeleto kjs: implementing CRC in M1 sounds a lot more pleasant
18:14 kjs I suppose that milestone shouldnt be too difficult anymore. Not sure what is involved in CRC
18:14 kjs but it has to do with bits i think :-)
18:15 dukeleto kjs: basically, you have polynomials + modular integer arithmetic, which you can turn into bit-twiddling :)
18:16 kjs it would be a good test for m1 too
18:17 dukeleto kjs: basically, we wanted to be sure m0 was turing-complete and all that jazz, so implementing CRC seemed like a good litmus test. If you implement in M1 and generate the m0, that still does what we want
18:17 kjs ok. not much time this week, but i ll see if i can find an existing algorithm
18:17 kjs .. to port
18:18 dukeleto kjs: so I am in favor of just writing it in M1. Coding in M0 is very assembly-like and time consuming.
18:18 dukeleto kjs: CRC is what is used in TCP, so many implementations about
18:18 dukeleto kjs: and you can choose CRC8, CRC16, etc. The bitwidth doesn't matter, whatever works
18:18 kjs well if it's in M1, it's also available in M0. perhaps not the best code, but Some Day M1 might have an optimizer
18:19 NotFound Less you code in m0, the less temptations to add syntactic sugar to it.
18:19 dukeleto NotFound: indeed.
18:19 * dukeleto is a big fan of M1
18:21 jevin joined #parrot
18:22 brrt joined #parrot
18:25 jevin joined #parrot
18:31 dalek rakudo/nom: d223755 | moritz++ | src/core/Exception.pm:
18:31 dalek rakudo/nom: fix types in error messages
18:31 dalek rakudo/nom:
18:31 dalek rakudo/nom: Patch courtesy of Nick Glencross
18:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d223755476
18:33 whiteknight dukeleto++ # tracking down IA64 bugs
18:33 dalek rakudo/no-strict: cb28ebf | moritz++ | src/core/Exception.pm:
18:33 dalek rakudo/no-strict: fix types in error messages
18:33 dalek rakudo/no-strict:
18:33 dalek rakudo/no-strict: Patch courtesy of Nick Glencross
18:33 dalek rakudo/no-strict: review: https://github.com/rakudo/rakudo/commit/cb28ebf7d9
18:33 dalek rakudo/no-strict: bfcce00 | moritz++ | src/Perl6/ (2 files):
18:33 dalek rakudo/no-strict: first step towards "no strict;"
18:33 dalek rakudo/no-strict:
18:34 dalek rakudo/no-strict: No way to test it yet, because $*STRICT is never set to a false valu
18:34 dalek rakudo/no-strict: review: https://github.com/rakudo/rakudo/commit/bfcce00f81
18:36 dalek parrot: bd38fd0 | NotFound++ | ChangeLog:
18:36 dalek parrot: winxed news
18:36 dalek parrot: review: https://github.com/parrot/parrot/commit/bd38fd01b3
18:39 kjs aloha, nopaste?
18:39 aloha kjs: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
18:40 nopaste "kjs" at 89.101.178.50 pasted "CRC-type of calculation" (27 lines) at http://nopaste.snit.ch/144373
18:40 kjs Well, I'm not sure if it's a proper CRC (I found something on the internet and ported it), but it's complicated and it runs.
18:40 tadzik hehe
18:40 tadzik I stole mine from glib when I needed it
18:42 kjs it's a different answer than C though. might have to do with unsigned v signed vars.
18:43 whiteknight yes, signedness of chars is going to make a difference
18:45 brrt good evening
18:49 kjs M0 doesn't know unsigned types i think
18:50 dalek m1: 574e404 | kjs++ | src/m1. (2 files):
18:50 dalek m1: add ^= operator. Allow a += b in for step.
18:50 dalek m1: review: https://github.com/parrot/m1/commit/574e404084
18:50 kjs hi brrt
18:50 brrt hi kjs :-)
18:51 brrt whiteknight, i'd like some advice again
18:51 brrt (or any other)
18:51 whiteknight I've got it in droves
18:51 whiteknight whether people want it or not
18:51 brrt great
18:51 brrt the problem is: output http headers
18:52 whiteknight forget it. Use FTP instead
18:52 brrt the method is: interconvert between some form of parrot array or hash and the apr_table_t type that apache knows
18:52 whiteknight PROBLEM SOLVED
18:52 whiteknight blah, so you have to put it into that exact struct?
18:52 brrt :-) great, i'm going to advice that
18:52 brrt none other
18:53 brrt but yeah, lets write mod_parrot for filezilla-daeomn
18:53 whiteknight Okay, so you've got two options. First is to try and use Pointer, PointerObject and the like to build the struct up from Winxed code or you can write a C-level PMC type to wrap the struct and provide a hash-like interface
18:54 brrt well, yes, there was another
18:54 brrt i thought about those two, but the 'other one' is to use wrapper functiions and NCI to manipulate the hash
18:54 kjs_ joined #parrot
18:54 jashwanth joined #parrot
18:55 whiteknight yeah, if that struct has an API that works too
18:55 brrt it does, luckily
18:55 brrt whole documentation and stuff
18:55 whiteknight whichever is more comfortable for you
18:55 brrt well, none is really :-) is my point
18:55 dalek winxed: c193888 | NotFound++ | / (4 files):
18:55 dalek winxed: jump version to 1.9.1 and update generated files
18:55 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/c19388881b
18:55 dalek winxed: 3afe2cb | NotFound++ | winxedst2.winxed:
18:55 dalek winxed: Merge branch 'master' into version_1_9
18:55 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/3afe2cb86b
18:55 dalek winxed: 3387865 | NotFound++ | pir/winxed_compiler.pir:
18:55 dalek winxed: update installable compiler
18:55 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/33878658ac
18:55 dalek winxed: b08e12d | NotFound++ | winxedst2.winxed:
18:55 brrt how does writing a PMC go about?
18:55 dalek winxed: Merge branch 'master' into version_1_9
18:56 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/b08e12de68
18:56 dalek winxed: 5a1444a | NotFound++ | pir/winxed_compiler.pir:
18:56 dalek winxed: update installable compiler
18:56 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/5a1444a9a1
18:56 dalek winxed: 439b0e3 | NotFound++ | / (4 files):
18:56 dalek winxed: Merge branch 'version_1_9'
18:56 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/439b0e3201
18:56 dalek winxed: 13e6fd7 | NotFound++ | / (2 files):
18:56 dalek winxed: jump to 1.10 devel
18:56 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/13e6fd7ac1
18:57 brrt or, yet another
18:57 brrt iterating over a hash in C
18:58 brrt is that at all possible?
18:58 brrt (a parrot hash)
18:58 whiteknight yes.
18:58 brrt oh, tell me more
18:59 whiteknight let me look
18:59 brrt (a resizable pmc array works just as well for me, by the way)
19:00 dalek m1: dd78117 | kjs++ | examples/crc.m1:
19:00 dalek m1: add CRC example. Not really correct, but it's running.
19:00 dalek m1: review: https://github.com/parrot/m1/commit/dd781171c4
19:00 whiteknight https://github.com/parrot/parrot/​blob/master/src/call/args.c#L500
19:00 whiteknight the macro parrot_hash_iterate iterates over the low-level hash
19:01 brrt right
19:01 whiteknight in that code block _bucket is the thing. _bucket->key and _bucket->value are what you need
19:02 brrt that seems like it could work
19:05 brrt src/include/hash.h
19:05 brrt good, thank you
19:07 brrt please don't breakthat macro in future revisions :-)
19:07 * brrt brb
19:14 brrt including hash.h doesn't seem to work very well
19:20 brrt too bad, it was such a good option
19:25 brrt there is another completely awesome option
19:26 brrt moreso because it exploits a vice as a virtue
19:26 brrt i simply concatenate the headers as a string, and then parse them at the other end
19:27 tadzik String Typing? :)
19:27 brrt which is trivial, because (a): i must copy the darn thing anyway to keep it from the prying hands of parrot
19:27 brrt and (b): after i've copied it is is literally mine
19:27 brrt and (c): i can thus simply tokenize upon a colon (for the key) and a newline for the value
19:28 brrt where (d) i can literally just put zero's
19:29 eseifert joined #parrot
19:29 NotFound joined #parrot
19:35 brrt but yeah, string typing :-)
19:35 kuku joined #parrot
19:39 whiteknight brrt: Wait, are you doing this hash iteration through the API?
19:39 whiteknight That probably won't work there
19:40 whiteknight From inside a custom PMC you can iterate hashes like the example I showed
19:40 brrt well, that was the original plan, yes, through the api
19:40 brrt and no, it doesn't work
19:40 brrt :-)
19:40 brrt i'd like to avoid creating a custom pmc to be quite honest
19:41 dalek rakudo/nom: 94a8bbe | tadzik++ | src/core/Pod.pm:
19:41 dalek rakudo/nom: Make Pod::Block::Declarator stringification more friendly
19:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/94a8bbe759
19:54 whiteknight I can understand that motivation.
19:55 Coke surely we don't need a custom pmc to iterate a hash from c...
19:55 brrt ...
19:56 brrt i could possibly also include extend.h?
19:57 brrt no, thats also besides the point
19:58 whiteknight no, mixing the embedding API and other APIs is not recommended
19:58 whiteknight At least, not at the same level. If you want to use the internal routines you need to be inside libparrot like a dynpmc or a dynoplib
20:00 brrt hmm.... i think i'm going for the string typing method
20:00 Coke there's an iterator pmc, no? can't you get the iterator pmc of a hash pmc and walk it, all through the embedding API?
20:00 whiteknight yes
20:00 whiteknight The hash brrt is talking about is not a normal Parrot hash
20:01 whiteknight it's a custom struct from apache
20:01 brrt oh, that one is not the point, importing the hash
20:03 brrt i can iterate over that one, all right, its iterating over the parrot one as a pmc that is tricky
20:03 brrt (and with importing, i mean from apache to parrot, and with exporting, i mean the reverse)
20:03 whiteknight from winxed it's absurdly easy
20:04 whiteknight from not-winxed it's harder, yes
20:06 brrt well, thanks though, i'm going to sleep now
20:06 brrt see you tomorrow
20:06 brrt left #parrot
20:11 dalek rakudo/nom: e80b1b1 | pmichaud++ | src/core/Parcel.pm:
20:11 dalek rakudo/nom: Parcel.elems should flatten (per TimToady++ at yapc::na 2012).
20:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e80b1b1240
20:33 dalek rakudo/nom: c203977 | tadzik++ | src/core/Pod.pm:
20:33 dalek rakudo/nom: Fix Pod::Block::Declarator stringification, tadzik--
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2039772f3
20:56 kjs joined #parrot
21:34 darbelo joined #parrot
21:39 dalek rakudo/nom: ddfb9ff | pmichaud++ | src/main.nqp:
21:39 dalek rakudo/nom: Bump up Parrot's recursion limit when we start (from default 1000 to 100000).
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ddfb9fff56
21:55 dalek m1: 731d641 | kjs++ | / (6 files):
21:55 dalek m1: few editions to examples [WIP]. Improve variable naming. And most importantly fix the todo of getting number of elements in a particular dimension, to correctly access arrays. Also allow struct members to be arrays.
21:55 dalek m1: review: https://github.com/parrot/m1/commit/731d64181a
22:22 dalek m1: 71afecf | kjs++ | src/ (3 files):
22:22 dalek m1: Handle struct member declarations similar to normal variable declarations, so they get an m1_var node. Also fix code with dimension handling in complex situatios such as x[4].y[4].z = 42.
22:22 dalek m1: review: https://github.com/parrot/m1/commit/71afecfae3
22:30 autark joined #parrot
22:39 kid51 joined #parrot
22:54 dalek m1: 3db3ee0 | kjs++ | / (3 files):
22:54 dalek m1: correct a comment. remove the need for a local var in semcheck. Add a nice and complex test for structs and arrays combined.
22:54 dalek m1: review: https://github.com/parrot/m1/commit/3db3ee05c6
22:57 whiteknight joined #parrot
23:00 whiteknight good evening, #parrot
23:01 kid51 Yo!
23:07 dukeleto kid51: i updated the ticket about /sbin/sysctl
23:07 dukeleto kid51: it sounds like it is right up your alley
23:07 dukeleto kid51: /sbin/sysctl is assumed to exist on linux, which need not be the case
23:13 kid51 dukeleto:  I think kjs was the one who was concerned with /sbin/sysctl; I've been dealing with one of his other tickets: 791
23:13 kid51 I haven't looked at the ticket which discusses sysctl
23:13 kjs kid51: hi there. I cant remember posting that.
23:14 * kid51 goes to github issues
23:14 kjs dukeleto: this works now: https://github.com/parrot/m1/blob/3db3ee05c6ad056​db1c8d1466b86e0cddd261dcb/t/array_and_structs.m1
23:15 kjs I believe I got infinitely complex arrays and structs working.
23:15 kid51 Correction: I did comment on #792
23:17 kid51 dukeleto:  I see your point now.
23:23 kjs alright. I cheered to early. oh well.
23:32 dalek m1: f4f0ab6 | kjs++ | / (3 files):
23:32 dalek m1: Found the culprit. Recent changes to the parser no longer track size for struct. This needs to be calculated in semcheck. This is a WIP and a SMOP.
23:32 dalek m1: review: https://github.com/parrot/m1/commit/f4f0ab6772
23:39 dalek m1: 8b50932 | kjs++ | src/gencode.c:
23:39 dalek m1: size != 0, not NULL, of course.
23:39 dalek m1: review: https://github.com/parrot/m1/commit/8b509329bf

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

Parrot | source cross referenced