|
Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 15 May 2012. |
|||
| dalek | rrot/whiteknight/io_cleanup1: de4b042 | Whiteknight++ | src/io/ (3 files): Fix a few more small issues with encodings and assertions. Build gets significantly further |
00:22 | |
| whiteknight | This current build failure is really getting on my nerves | 00:35 | |
| NotFound | whiteknight: I'm thinking about creating an Encoding PMC to give better access to encodings from pir | 01:03 | |
| whiteknight | What kind of interface would it provide? | ||
| NotFound | whiteknight: just an idea for a now. Getting an encoding by name and checking its name (it's not always the same as provided), getting the encoding of a string, trans encoding, | 01:06 | |
| whiteknight | .get_name(), .encode(s), .string_has_encoding(s), etc | ||
| NotFound | It will allow to get rid of the encoding numbers in pir, keeping track of the numbers is a shame. | 01:07 | |
| And maybe in the future it can allow to generate a encoding on the fly, for example for the lot of latin variants, from information from the OS. | 01:09 | ||
| (but probably when we reach that point all the world has already moved to utf8) X-) | 01:10 | ||
| whiteknight | yes, and maybe I'll grow wings and a big unicorn horn | ||
| NotFound | That will be great, you can become the Winxed logo. | 01:11 | |
| whiteknight | :) | 01:12 | |
| NotFound | "whiteknight in the sky with horns" | ||
| If someone is interested in the state of winxedxx, it has just gained the ability of dynamically load modules and use functions and classes from them. | 01:15 | ||
| whiteknight | awesome | 01:17 | |
| NotFound | The most bizarre mix between static and dynamic types and linking in the world. | 01:18 | |
| whiteknight | heh | 01:19 | |
| blah, this error is starting to get on my nerves | |||
| I think opsc is not outputting .c files, but I don't know why | 01:20 | ||
| because I don't think it's buffering, so the data should all be going directly to the file | 01:21 | ||
| eff this. I'll deal with it this weekend | 01:30 | ||
| dalek | kudo/nom: eff089b | (Solomon Foster)++ | lib/Test.pm: Add diakopter++'s eval_dies_with_error. |
02:11 | |
|
02:35
kurahaupo joined
|
|||
| pmichaud | followup to qrpa stuff from earlier -- when I put the QRPA code directly into Parrot, get_pmc_keyed_int runs slightly faster than it did from the rakudo subtree | 04:33 | |
| same if I do QRPA as a dynpmc from within the parrot repo | 04:34 | ||
| so.... I'm not sure what's up | |||
| I'll look at it more tomorrow afternoon, I guess. | |||
| to clarify: when QRPA is in the parrot repo, it runs faster or the same speed as RPA | |||
| it's only when it's loaded as part of the perl6_group dynpmc that I've noticed a slowdown | 04:35 | ||
| afk, sleep | |||
|
06:20
fperrad joined
09:11
PacoAir joined,
brrt joined
|
|||
| dalek | d_parrot: 51223cf | (Bart Wiegmans)++ | / (6 files): Cleaning up building, but mostly, get loadlib and friends working |
10:14 | |
|
10:31
whiteknight joined
|
|||
| brrt | hey, whiteknight | 10:32 | |
| you're just the person i was looking for | 10:33 | ||
| whiteknight | hello brrt. How are you doing today? | ||
| brrt | debugging a segfault :-) | ||
| how are you | |||
|
10:34
lucian_ joined
|
|||
| brrt | oh, and its not even my segfault, fortunately | 10:38 | |
| its caused by compreg('winxed') | |||
| or, load_language('winxed') | |||
| Parrot_compreg_p_sc (cur_opcode=0x21a6b394, interp=0x219f28c8) at src/ops/core_ops.c:14979 | 10:40 | ||
| 14979\t PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SCONST(2)); | |||
| whiteknight | weird. is compreg_hash null? | 10:46 | |
| that macro expands to: compreg_hash->vtable->get_pmc_keyed_str(interp, compreg_hash, SCONST(2)) | 10:47 | ||
| brrt | probably | 10:48 | |
| my gdb-fu is not good enough to figure out | |||
| whiteknight | p * compreg_hash | 10:49 | |
| and if that's not null, try this: p * compreg_hash->vtable->whoami | 10:50 | ||
| brrt | i'll try | 10:53 | |
| cannot access memory at address 0x0 | 10:55 | ||
| but i can print the whole interpreter | |||
| (compreg_hash is null) | 10:56 | ||
|
11:00
JimmyZ joined
|
|||
| whiteknight | okay, that's weird. compreg_hash should be created during interp setup and should not be null | 11:00 | |
| brrt | i can only find a reference in core_ops | 11:03 | |
| whiteknight | right, it's coming out of the interp globals array | 11:06 | |
| dalek | : fd97b97 | jimmy++ | / (45 files): move all c files and m1.* to src/ |
||
| brrt | i did use Parrot_api_set_configuration_hash | 11:07 | |
| but only with libdir and build_dir and versiondir | |||
| but that comes down to Parrot_lib_update_paths_from_config_hash, which doesn't touch compreg_hash | 11:10 | ||
| dalek | : 87c17f1 | jimmy++ | Makefile: make clean should remove m1lexer.* files |
11:12 | |
| brrt | oh, doesn't depend on Parrot_api_set_configuration_hash | 11:13 | |
| pff, i can't find it right now | 11:21 | ||
| whiteknight | I'll look for it as soon so I put in my next commit | 11:27 | |
| brrt | :-) thanks, but don't worry about it much | 11:28 | |
| i could also post a bug probably? | 11:31 | ||
| whiteknight | yes | 11:34 | |
| brrt | whatup, i can load the symbol for ap_rwrite using dlfunc inside apache, but not outside | ||
| i.e. | 11:35 | ||
| within apache, i can call all functions in the scope using dlfunc | |||
| - probably - because apache uses dynamic loading so thoroughly, otherwise my dynamic module could never link to ap_* functions | 11:36 | ||
| but this is awesome | 11:48 | ||
| anyway, got to run | 11:52 | ||
|
11:53
brrt left
11:59
kid51_ joined
12:06
crab2313 joined
|
|||
| whiteknight | brrt++ | 12:20 | |
| dalek | rrot/whiteknight/io_cleanup1: 2037433 | Whiteknight++ | / (4 files): Add in linebuffering logic, stolen in all it's hacky glory from the old system. Set up block buffering on stdin and line buffering on stdout. Make sure to flush stdout on io finish so we don't lose any data if we exit without having written a final newline. |
12:30 | |
| rrot/whiteknight/io_cleanup1: 9bbf96d | Whiteknight++ | / (6 files): Cleanup some buffer-related stuff. Rename the buffer flags to PIO_BF_ to separate them from the normal handle flags. |
|||
| rrot/whiteknight/io_cleanup1: d59461a | Whiteknight++ | / (10 files): Many assorted fixes so src/io/*.c source files build without warnings (or, without known warnings). Found a few bugs in the process. Also, fixed and infinite recursion bug that showed up when I fixed some warnings. |
|||
|
12:52
crab2313 joined
13:08
Psyche^ joined
13:18
crab2313 joined
|
|||
| dalek | rrot/777/no_pretty_debug: 140692e | jkeenan++ | lib/Parrot/Configure/Options/Conf/Shared.pm: Add 'no-pretty-debug' option. |
13:44 | |
| rrot/777/no_pretty_debug: 12636aa | jkeenan++ | config/init/defaults.pm: Add no_pretty_debug. |
|||
| rrot/777/no_pretty_debug: 8470cbc | jkeenan++ | config/gen/makefiles/root.in: Create a select_pretty_debug 'make' target. As currently structured, GDB pretty printing will be on by default but turned off by CLO '--no-pretty-debug'. |
|||
|
14:31
plobsing_ joined
14:42
PacoAir joined
14:45
zby_home joined
15:12
brrt joined
15:26
brrt1 joined
|
|||
| whiteknight | kid51++ | 15:34 | |
|
15:44
kjs joined
|
|||
| JimmyZ | hello kjs | 15:55 | |
| kjs | hi JimmyZ | ||
| JimmyZ | did you mind if I remove m1_ prefix | ||
| kjs | from what? | 15:56 | |
| JimmyZ | kjs: file name | 15:57 | |
| kjs | (did you do already? I've got a lot of changes that i havent checked in yet) | ||
| JimmyZ | kjs: nope | ||
| kjs | well the idea is that, IF, (big if) it's integrated into a larger whole, it's handy to know what parser and so on it is | ||
| and m1_ prefix indicates that. what's your reason for wanting to remove? | 15:58 | ||
| JimmyZ | kjs: I find it's difficult to type m1_ , maybe just me | 15:59 | |
| kjs | you mean in the filename or in the code? | ||
| I was gonna change it to M1_ prefix in structs and other types | |||
| JimmyZ | kjs: the filename | ||
| kjs | but when do you need to do that...? | 16:00 | |
| it's a makefile | |||
| JimmyZ | kjs: when I type 'vi m1_*' | ||
| kjs | ah | ||
| what if we remove the _ ? | 16:01 | ||
| brrt1 | hello, who can help figuring out NCI? | 16:02 | |
| specifically, what to do when I have 'No NCI thunk available for signature void (PMC, PMC)' | |||
| JimmyZ | kjs: that's not a real problem. but if it's integrated into a larger whole, I think there will be a dir called 'm1' or something | 16:04 | |
| kjs | JimmyZ: OK. if you can make those changes I don't mind | 16:05 | |
| just wait a min so i can check in my stuff. | |||
| JimmyZ | kjs: maybe in compilers/m1 of parrot | ||
| dalek | : 7c1bc66 | kjs++ | src/m1_gencode.c: update comments and clean up a bit. |
16:06 | |
| kjs | eh | 16:07 | |
| JimmyZ: | |||
| you already made the changes so? | 16:08 | ||
| JimmyZ | kjs: I didn't | ||
| brrt1 | well, still can't call with PMCs | ||
| kjs | it says so in the history | 16:09 | |
| brrt | but i can with regular pointers | ||
| JimmyZ | kjs: what changes? | ||
| kjs: oh, you mean changed the dir | |||
| kjs | yes | ||
| JimmyZ | kjs: yes | 16:10 | |
| kjs | does it write the executable file in the src folder or the root folder? | 16:12 | |
| JimmyZ | kjs: the root folder | ||
| brrt | or, how do i fix the 'no nci thunk available' problem | ||
| kjs | JimmyZ: can you do the file rename some time later? | 16:13 | |
| preferably if i'm offline :-) | |||
| i have a little bit of time now that i'd like to spend time hacking, not trying to resolve conflicts with filenames | |||
| JimmyZ | kjs: yep, I do it when you are offline. | ||
| kjs | thanks | ||
| JimmyZ | kjs: I don't want to disturb you :P | 16:14 | |
| kjs | well the improvements are appreciated, but it's more important to get this thing 99% done rather than filenames etc... ;-) | ||
| JimmyZ | kjs: aye. I will add a t/ dir next step once I think it's easy to test it. | 16:16 | |
| kjs | oh excellent | ||
| preferably i d like to have the followig setup | |||
| namely a script that runs it through M1, then perl m0_assembler.pl and then ./m0 | |||
| if I can get M1 finished, I'd be interested in generating m0b files in one go. | |||
| JimmyZ | kjs: I hope to do these changes smoothly so you won't be too surprised. | 16:18 | |
| kjs | great, thanks | ||
| JimmyZ | :P | ||
| dalek | : 3f2ea28 | kjs++ | src/m1 (5 files): add asserts to stack. cleanup and debug msg in gencode. |
16:21 | |
| JimmyZ | kjs: oh, btw, if you don't want to add new files, just needs to type 'git add -u' before commit. | 16:24 | |
| kjs | when would i need this? | ||
| did you just add files? | 16:25 | ||
| JimmyZ | kjs: when you only want to commit updated files | 16:26 | |
| kjs | ok | 16:27 | |
| dalek | : 753aa7f | kjs++ | src/m1_gencode (2 files): remove file i accidentally added . also add a comment to gencode. |
16:37 | |
| : ad87c6d | kjs++ | src/m1 (3 files): remove files that are generated. fix segfault that happens with a.b = 1. (temp fix). |
|||
|
16:37
kjs joined
|
|||
| : 55b0f47 | kjs++ | src/m1_gencode.c: print to OUT not stderr. Reverse parent and index fields. |
16:42 | ||
| whiteknight | brrt: What issues are you seeing now? | 16:48 | |
| brrt | the compreg issues is still very much alive | 16:49 | |
| s/s\\b/s/ | |||
| dalek | : 47657f9 | kjs++ | src/m1_gencode.c: add more doc and remove commented out code. |
||
| : ba93f82 | kjs++ | TODO.txt: update TODO file a bit. |
|||
| whiteknight | yes, I just saw the email | ||
| let me check out master and see what I can see | |||
| brrt | I'll push the failing branches | ||
| whiteknight | okay, the index in question is IGLOBALS_COMPREG_HASH (include/parrot/interpreter.h:274). | 16:51 | |
| dalek | d_parrot: 8fb2d84 | (Bart Wiegmans)++ | mod_parrot.winxed: Demonstrated a beautiful failure mode (compreg_hash is NULL, no idea why) |
||
| d_parrot: 13cdb61 | (Bart Wiegmans)++ | mod_parrot_run.c: Try to path it up with load_language, does not seem overly succesfull |
|||
| whiteknight | it appears to only get set in src/interp/api.c:675 | 16:52 | |
| Parrot_interp_set_compiler | 16:53 | ||
| so it's lazy. It doesn't exist until we've registered at least one compiler | |||
| ...And this means you don't have any compilers registered, though that's still kind of crappy | |||
| Where's your segfault happening? | |||
| brrt | euh | ||
| i don't exactly know, within my call to compreg | 16:54 | ||
| whiteknight | ....no, wait. The compreg_s_p opcode doesn't call that function | ||
| so the compreg opcode won't autovivify that variable | |||
| Fix incoming... | |||
| brrt waiting for it... | 16:55 | ||
| :-) | |||
| whiteknight | I have to rebuild the ops first. Give me a minute | ||
| brrt has time | 16:56 | ||
| whiteknight | the short answer, the Parrot_interp_get_compiler and Parrot_interp_set_compiler functions do the right thing, but aren't called from the compreg op | ||
| this is why we have APIs, so people can use them! | |||
| brrt | so, in short, move the compreg op to those functions, and hapinness ensues? | 16:57 | |
| brings me to an idea, if I load the compiler from within C first | |||
| it is autovivified | |||
| whiteknight | yes | 16:58 | |
| the Parrot_api_set_compiler routine does the right thing | |||
| or whatever it's called | |||
| so you can do that, but I still need to fix this mess | |||
| At some point I need to go through and properly encapsulate all these globals, because the system plays with them too rough | 17:00 | ||
| brrt | a bit :-)... btw, strategy does not work | 17:01 | |
| whiteknight | what strategy? | ||
| brrt | first calling load_language and get_compiler from c | 17:02 | |
| or I'm doing something wrong | |||
| dalek | kudo/nom: 5d36100 | moritz++ | lib/Test.pm: remove eval_dies_with_error the proper way are typed exceptions; a helper function for those is currently being developed in t/spec/S32-exceptions/misc.t (and will later be moved to Test.pm or Test::Util |
||
| whiteknight | Does it segfault, or just return null? | ||
| the load_language might be using the compreg op internally | 17:03 | ||
| whiteknight says some curse words | |||
| brrt | i'm checking gdb | ||
| no, i'm getting sigabrt, for some reason | 17:04 | ||
| dalek | rrot: 22d7d59 | Whiteknight++ | src/ops/core (2 files): The compreg hash is autovivified in the Parrot_interp_set_compiler function. Make sure we use that function (and Parrot_interp_get_compiler) for accessing the compreg hash in the compreg_s_p and compreg_p_s ops for cases where the only compiler get/set operations are done from the pbc level. brrt++ for the find. |
17:06 | |
| whiteknight | Update, see if that fixes your problem | ||
| brrt | will do | ||
| dalek | : cc51fe6 | kjs++ | src/m1_ (2 files): arrays are automatically allocated on the heap when declared. |
17:09 | |
| whiteknight | brrt: I just replied to your email with information about the second problem. In short, you probably want libffi | 17:11 | |
| or, if you have a list of the function signatures you need you can create an NCI definitions file to compile and load | 17:12 | ||
|
17:13
brrt joined
17:19
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#397 (master - 22d7d59 : Whiteknight): The build was fixed. | 17:19 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/d......22d7d59 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1509991 | |||
|
17:19
travis-ci left
|
|||
| whiteknight | ...it was broken? | 17:19 | |
| brrt | mod_parrot lives! | 17:20 | |
| mod_parrot really lives very much | 17:21 | ||
| oh, i'm so happy right now | |||
| whiteknight | it works? | ||
| brrt | yes | ||
| whiteknight | brrt++ | 17:22 | |
| awesome | |||
| brrt | whiteknight++ for fixing it | ||
| that leaves the NCI problem relatively minor since i can work arround it | |||
| eg., a single pointer works, so i could make a mod_parrot_context struct with all relevant information | 17:31 | ||
| moritz | brrt++ | ||
| brrt: how much does it work? | |||
| brrt | .. it almost works, i've nearly fixed compiling of external scripts | ||
| that is, if those scripts are written in winxed | 17:33 | ||
|
17:33
preflex_ joined
|
|||
| moritz | well, that's a good start | 17:38 | |
| brrt | ehm, I get a Null PMC access in find_method('compile') | 17:47 | |
| but i'm not sure where | 17:48 | ||
| dalek | : 146d909 | kjs++ | src/m1_ (4 files): various updates. |
17:50 | |
| : becbed7 | kjs++ | array.m1: example to iterate through an array. It works! |
17:54 | ||
| brrt | and.. something new seems to be wrong :-) | 18:03 | |
| but /me has to eat first | 18:04 | ||
| dalek | d_parrot: e6d8486 | (Bart Wiegmans)++ | / (4 files): Almost able to run external scripts |
||
| brrt | karma brrt | 18:05 | |
| aloha | brrt has karma of 12. | ||
| dalek | : b1d3090 | kjs++ | / (3 files): preparations to move from stdout to instr objects. |
18:14 | |
| kjs | aloha, msg JimmyZ If you want you can change the filenames now. | ||
| aloha | kjs: OK. I'll deliver the message. | ||
|
18:22
kjs joined
18:24
brrt joined
18:45
kjs joined
18:46
whiteknight joined
18:53
brrt joined
18:59
kjs_ joined
|
|||
| alvis | I'm just now, really, starting to look at m0 and its specification, i.e., 'docs/pdds/draft/pdd32_m0.pod'. | 19:08 | |
| Looking at the spec, it says "Lorito refers to "M0" and the levels above it, such as "M1" which is written in "M0" ops, and possibily an "M2" level which is written in "M1" ops." | |||
| How do we reconcile kjs' "M1", i.e., subset of C, with "'M1' which is written in 'M0' ops"? They seem two different things? | |||
| Perhaps, I misunderstand something. Or, perhaps, the spec needs an update? | 19:09 | ||
| kjs | alvis: you're right. try writing M1 in M0 :-) | ||
| I can call it something else | |||
| alvis | kjs: Not a chance! :) | 19:10 | |
| kjs | indeed ;-) | ||
| it's hard enough in C | |||
| benabik | I think the original name for kjs's M1 was "m0le" | ||
| alvis | kjs: Again, I'm just wondering if we need to update the spec. | ||
| kjs | alvis: let's update it once "M1" is ready perhaps? I still might run into problems that might it from succeeding. | ||
| alvis | benabik: ahh! yeah, that makes sense. (I think I remembering looking at that, once-upon-a-time.) | 19:11 | |
| kjs | though it's looking pretty good ;-) | ||
| alvis | kjs++ # Yes, it does! | ||
| kjs | alvis: you're any good with M0? :-) | ||
| alvis | kjs: Again, I've just really started, reading through the spec and playing around a'bit. Just too many pies and too few fingers. :) | 19:12 | |
| kjs | alvis: yea i know the feeling | 19:13 | |
| i hope to have a test suite soon | |||
| and a script to run it (make test) | |||
| that, plus a few major TODOs, should make it fairly complete and usable. once function calls work, I plan to implement Game of Life | 19:14 | ||
| alvis | kjs: that's cool. | 19:15 | |
| /me back to reading the spec. (Besides, cotto and dukeleto will scroll through. They can decide whether or not to update the spec.) | |||
| kjs | sure yes | 19:17 | |
| actually, if M1 can be self-hosting, so implementing in itself, then M1 is in fact implemented in M0 :-) | |||
|
19:18
PacoAir joined
|
|||
| cotto | Ideally M1 will be self-hosting, but for now sufficient awesomeness will be provided by having a C-like language that generates valid M0. | 19:42 | |
| "generates" would be a better word choice than "is written in" | 19:43 | ||
| dalek | p/altnfa: 1764d47 | jnthn++ | src/QRegex/NFA.nqp: Ensure <.alpha> contributes to longest prefix. |
||
| rrot/m0: a7922dd | cotto++ | docs/pdds/draft/pdd32_m0.pod: clarify that M1 doesn't need to be self-hosted |
19:48 | ||
| rrot/m0: ab32a83 | cotto++ | CREDITS: Merge branch 'm0' of github.com:parrot/parrot into m0 |
|||
| cotto | kjs++ | ||
|
19:56
contingencyplan joined
19:58
nine joined
20:23
KonkeyDong joined
|
|||
| KonkeyDong | hello | 20:23 | |
| I am a noob that is trying to learn making parsers in parrot | 20:24 | ||
| is {*} deprecated in parrot 4? | |||
| "grep -r '\\{\\*\\}' . | less" in the examples folder give me no results | |||
| (except doc results) | 20:25 | ||
| sorear | {*} syntax was used by the Parrot Grammar Engine, which has been deprecated for quite a while | 20:29 | |
| KonkeyDong | oh | ||
| so the tutorial is outdated then :( | |||
| this tutorial: www.parrotblog.org/2008/03/episode-...-guts.html | 20:30 | ||
| so, what should i use now? | |||
| benabik | oopha. parrotblog is very old. | 20:31 | |
| parrot.github.com/html/pct_tutorial.html | |||
|
20:32
preflex_ joined
|
|||
| KonkeyDong | thanks | 20:33 | |
| too bad the old tutorial is the first google result. | |||
| again, thanks | |||
| bye | 20:34 | ||
| benabik wonders what the search phrase was. | 20:35 | ||
| parrot.org appears before parrotblog on searches I try. Although PGE's Wikipedia article comes up first for "parrot parser". | 20:36 | ||
| dalek | p: 23b8c3e | moritz++ | tools/build/Makefile.in: [build] include @optimize@ in CCFLAGS |
20:54 | |
| pmichaud | followup to qrpa slowness -- source appears to be that Rakudo's makefile wasn't including the @optimize@ flag in its Makefile when compiling dynops/dynpmcs | 20:56 | |
| (c.f. config/gen/makefiles/root.in line 594) | |||
| dalek | kudo/nom: 8b4208b | moritz++ | tools/build/Makefile.in: [build] reuse @optimize@ flags from parrot |
21:00 | |
| kudo/nom: acf9038 | moritz++ | tools/build/NQP_REVISION: bump to an optimize NQP revision |
|||
|
21:01
preflex_ joined
|
|||
| benabik wonders why --optimize uses -Os | 21:06 | ||
|
21:19
crab2313 joined
|
|||
| moritz | it doesn't, on my machine | 21:21 | |
| dalek | nxed/version_1_9: ea24235 | NotFound++ | NEWS: some news for 1.9 |
22:35 | |
| nxed/version_1_9: 530e0e7 | NotFound++ | / (3 files): jump to version 1.9.0 and update installable files |
|||
| rrot: 30a861c | NotFound++ | ext/winxed/ (2 files): update winxed snapshot to 1.9.0: - Fixed some inline problems - Minor improvements in optimization |
22:39 | ||
|
23:24
mtk joined
|
|||