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