Parrot 0.9.0 | parrot.org/ | 566 RTs left.
Set by moderator on 31 January 2009.
Infinoid NotFound: what does it break? 00:02
rg are you sure it's the no-star part, not the exactly one whitespace part? there's another version of that regexp above that states \\s* 00:03
NotFound Anything that tries to use a PMC * or STRING * PMC attribute from a pir subclass
rg: mmmm.... I think you are right. 00:04
Infinoid the lack of * after \\s looks like an oversight, considering it's there for the get_attr case and also for STRING in both set/get
Whiteknight use: /PMC\\s\\*[^\\*]?/
the question mark at the end makes the last character optional
Infinoid You probably want \\s*\\* too, not \\s\\*
rg whiteknight: that you can just aswell leave it out completely 00:05
s/that/then/ 00:06
Infinoid NotFound: do you have a test case?
NotFound Now I see an interesting point: the re is not the same in GET_ATTR and in the SET_ATTR parts. 00:08
Infinoid yeah, that to me looks like a typo
NotFound : /PMC\\s*\\*[^\\*]/ /PMC\\s\\*[^\\*]/
Infinoid the former will match "PMC* foo" and "PMC *foo"; the latter will only match "PMC *foo" 00:09
NotFound And a violation of the principle: "Don't copypaste code"
00:09 AndyA joined
particle there's an easy way to fix that, Don't Repeat Yourself. 00:11
chromatic I wouldn't mind disallowing PMC* foo. 00:26
rg you can always match \\s+ ;) 00:27
chromatic I could, but I think it might break something. 00:28
NotFound Well, I think that fixes part of the problem, but we have another one: get_attr_str does not get the pmc base attr from the pir derived class. 00:29
And all complicated by other known bug: exceptions thrown while searching from a handle enter infinite recursion 00:30
rg yes, i'd like to see a solution for that, too. 00:31
Infinoid chromatic: If we're going to disallow it, we should at least be consistent about it. 00:32
NotFound At least we must have codingstd test for ATTR syntax. 00:33
chromatic Agreed. 00:38
00:41 davidfetter joined
dalek rrot: r36407 | NotFound++ | trunk/lib/Parrot/Pmc2c/Attribute.pm:
[lib] fix handling of ATTR types in Pmc2c
00:49
NotFound Let's go step by step 00:50
Whiteknight what are you guys updating? the ATTR syntax? 00:52
particle we don't allow STRING* syntax. there must be whitespace. that's in pdd07. 00:53
NotFound particle: I was worried about accepting valid things, not rejecting invalid ones. 00:55
Whiteknight: fixing, not updating 00:56
Whiteknight okay 00:57
cotto NotFound, that pmc2c code needs to reject things like STRING **. 01:05
(i.e. for FixedStringArray)
NotFound cotto: it does 01:06
cotto NotFound, you're right. I somehow missed the $ 01:07
NotFound I think that what this code really need is tests
01:09 tetragon joined
Whiteknight I think I have a fix coming through for the cpu_ret issue too 01:10
I was perfectly happy with documentation saying "just don't use this freaking opcode ever, or we'll find you", but no. Coke can't have that 01:11
dalek rrot: r36408 | NotFound++ | trunk/src/scheduler.c:
[core] quick hack to avoid infinite recursion when an exception is thrown while looking for a handler
01:14
01:23 Andy joined
dalek rrot: r36409 | NotFound++ | trunk/src/pmc/exceptionhandler.pmc:
[pmc] One step towards fixing problems with pir classes derived form ExceptionHandler
01:30
01:35 kid51 joined
Coke is glad to see his new president can swear convincingly. 01:44
kid51 Links?
purl i think Links is the linker rel
Coke kid51: digg.com/politics/Audio_clips_of_Ba...a_swearing 01:45
shorten Coke's url is at xrl.us/befcm6
kid51 Thx 01:49
So, if anyone wants to respond to any of my pokes from the last week concerning RT tickets, we might be able to push the number of unresolved RT tickets down below an important threshold ... 01:52
01:55 Piper joined
Piper Hi there. I am Piper. I am now publicly logging this channel. If you don't want to be logged, please leave now. 01:55
kid51 Piper, didn't you used to log here 6 or 7 months ago? And where did you disappear to? 02:01
Piper, we rely on masak's log now!
rg i thought it was moritz, but yeah, we have a good log. 02:02
kid51 rg: You're correct.
Speaking of bots, what's up with dalek. I made a commit 5 minutes ago and it hasn't been posted! 02:14
cotto dalek's been slacking off lately. Infinoid also lost a commit yesterday iirc. 02:15
dalek is a slacker
dalek?
purl i heard dalek was dha's distributed perl community badger badger badger attack or ourworld.compuserve.com/homepages/g...lek_fr.htm or 'Dalek' for the language, and 'dalek' for the program or www.daleklinks.co.uk/ or a Dr Who baddie or {see: dalek meme} or at www.deviantart.com/deviation/20016573/ or www.asciiartfarts.com/20020615.html or xrl.us/2doh
kid51 purl, dalek is also a bot (not unlike purl) who reports SVN commits on #parrot 02:17
purl wish i knew, kid51
kid51 Our FreeBSD Smolder reports are stuck at SVN r 29890 -- or at least the report is saying that's where they're being generated from. 02:30
Example: smolder.plusthree.com/app/public_pr...ails/17790
shorten kid51's url is at xrl.us/befcqq
rg if you want a freebsd smolder, i believe i can help. what's required to be useful? 02:44
Coke "make smoke" every so often. 02:46
after an svn up; the problem with the current ones is that it's stuck in a checkout from perl.org and can't update.
rg should i rather do it automatically or manually after i've updated and did a make test anyway? 02:47
kid51 If, whenever you normally say 'make test', you say 'make smoldertest' instead, you get the smolder report for free. 02:48
The TAP from the tests is exactly the same. It just takes a few seconds at the end to transmit the tarball.
(or however it transmits the report) 02:49
Coke automatically is easier to set and forget, but manually is fine, too.
rg hmm make smoke just told me i need TAP::Harness::Archive. this might take a minute 02:51
kid51 Uh, yeah, that's correct. I should have mentioned that. 02:52
03:11 Zaba_ joined
rg ok ... here we go 03:20
03:22 Andy joined
rg oh hmm. maybe i shouldn't send in smoke reports for a tree that is already patched 03:23
ok, it worked: smolder.plusthree.com/app/public_pr...ails/17825 03:33
shorten rg's url is at xrl.us/befcum
03:34 Whiteknight joined
Whiteknight if there's one thing I didn't miss, it was piper 03:34
we've got about 11 tests failing on Win32-x86 JIT 03:35
03:36 janus joined 03:40 Zaba joined
kid51 rg: Thanks. I was able to close one ticket with that report ... which puts at the magic number of 500 unresolved RT tickets: tinyurl.com/cbub2z 03:41
Whiteknight kid51++ 03:42
kid51 So, if one test failure will cause 'make fulltest' to halt, is there any way around that other than running the remaining targets individually? 03:43
Whiteknight your best bet is to write up a little shell script to run all the tests in sequence 03:44
I had a script like that at one point but I deleted it
moderator Parrot 0.9.0 | parrot.org/ | 500 unresolved RTs left. 03:44
rg you could copy the invocation from the makefile and run with make -k instead (or edit the -k into your makefile) 03:45
but on a related note, we might want to skip the jit tests on platforms that don't support jit, otherwise fulltest reports lots of errors 03:46
Whiteknight I'm getting a test failure in t/pmc/freeze.t. Win32-x86. Anybody else seeing this? 03:49
rg i've just sent in a succesful smoke for freebsd/amd64, so not me ;) 03:50
Whiteknight crap
03:57 Whiteknight_ joined 04:10 bacek joined
kid51 must sleep 04:21
purl $kid51->sleep(8 * 3600);
04:24 Andy joined 04:26 petdance joined
petdance I need a good picutre of pmichaud 04:32
and by "good" I mean "preferably embarrassing"
Andy Putting a shout-out to kid51 in my keynote 04:49
05:00 Zaba_ joined 05:05 Andy joined 05:37 mberends joined 05:42 Andy joined 05:57 Andy joined 06:21 Theory joined 06:30 TiMBuS joined 06:43 rurban_ joined 06:53 alinbsp joined 07:32 bacek joined
bacek rakudo: say "hi" 07:36
polyglotbot OUTPUT[hi␤]
mberends bacek: say "hi" 07:46
07:49 chromatic joined 08:22 iblechbot joined 08:39 alvar joined 08:45 rurban_ joined
rurban_ Infinoid: A got now a gdb for mingw and added a bt to TT #276. encoding=0 on the DynLexPad indeed 08:46
08:52 cosimo joined
bacek Is git://github.com/rakudo/rakudo.git now official source for Rakudo? 09:11
rurban_ yes
for now 09:12
bacek rurban: great! 09:13
it there any particular instructions for build rakudo outside of parrot? 09:14
rurban_ not yet, sorry. I never do that 09:15
bacek rurban: no worries. perl Configure --help is enough :)
oh shi... It requires a lot of fixes to work with standalone parrot in separate directory... 09:20
cognominal rakudo has move out of parrot? 09:25
*moved
TiMBuS why has this not been announced yet? 09:26
cognominal this is a question, not an affirmation 09:27
TiMBuS well, the answer is yes
cognominal and parrot will not more to a git repository? 09:28
TiMBuS but it really needs to be announced. its kind of a big thing 09:29
cognominal *move
TiMBuS i don't think so 09:30
09:30 barney joined 10:11 Zaba joined
rurban_ I'm close to fixing TT #276. encoding=0 after whoami = CONST_STRING_GEN(interp, "DynLexPad"); 10:16
10:45 iblechbot joined
dalek rrot: r36412 | fperrad++ | trunk:
[rakudo] remove some perl6 references
11:02
11:04 kj joined 11:05 rob joined
dalek rrot: r36413 | fperrad++ | trunk:
[rakudo] leaves on github
11:11
tracwiki: v47 | fperrad++ | Languages
tracwiki: trac.parrot.org/parrot/wiki/Langua...version=47 11:12
rrot: r36414 | barney++ | trunk/src/ops/core.ops:
[codingstd] c_parens.t
11:16 kj joined 11:19 masak joined 11:21 rob joined
rurban_ TT #276: I think I have to give up in this for now. charsets are not initialized on a dynpmc init. but other ptrs are also not initialized. Null PMC access in get_integer() 11:28
12:03 alinbsp joined 13:02 rurban_ joined 13:05 Fayland_logger joined 13:09 Limbic_Region joined 13:13 bacek joined 13:14 kid51 joined 13:24 Fayland joined, rurban_ joined 13:48 alinbsp joined
dalek rrot: r36415 | barney++ | trunk/languages/pipp/t/php/control_flow.t:
[Pipp] add first TODO test for 'switch'
13:52
rrot: r36416 | barney++ | trunk/languages/pipp:
[Pipp] Parse dummy switch control structure
13:53
Infinoid rurban_: the strange thing here is that the failed assertion was ASSERT(encoding), yet the backtrace says the function was called with encoding=0x3d4d60 13:56
rurban_ Infinoid: I showed here two cases: first cygwin good, then the mingw bade case 13:57
sorry
I thought it's a simple data structure error, then I found it it's a missing init
Infinoid oh ok
rurban_ we still have to check if it's msvc also, or only mingw, kjs should know, or smolder 13:58
13:58 Whiteknight joined
rurban_ but if you give me some hints I can test and verify. 13:58
Infinoid Does your mingw build with libicu?
rurban_ I assume it's some strange dllinit thing
without
kj rurban_: hi 13:59
rurban_ I haven't installed it
oh hi!
did you have the dynpmc foo error on msvc?
kj yes
it came back recently
rurban_ ok, we shoudl note that in the ticket. so it's mingw and msvc
kj rurban_: i'm not sure, didn't look into the test too closelyk but ISTR it's something with loading some lib without extension? 14:00
rurban_ no, i noted it in the ticket. it's a missing charset initialization in every dynpmc 14:01
and there are more inits missing
the vtable are also missing
purl okay, rurban_.
kj rurban_: I'm not sure if particle had that test failing as well
but for me it has failed for a long time 14:02
rurban_ I'll try to bisect it. sooner or later...
kj it would be weird if it's only on some win systems (like mine) but not others; haven't heard jonathan about it, either; he's on win as well
Infinoid hmmm 14:04
rurban_: look at src/string/encoding.c line 369, if you haven't already
that line is where the pointer gets initialized... yet it is NULL later on 14:05
and it is being called with the right string and a nonnull pointer, it's #3 in your first backtrace 14:06
which sounds like either STREQ() does't work (unlikely), or the pointer is being overwritten later on? 14:07
kj afk #shopping
moritz programming is hard; let's go shopping 14:09
Infinoid hehe
rurban_ did you see my nopaste patch? 14:10
Infinoid no. (sorry, I just woke up) 14:11
rurban_ I fixed the encoding init, but then the vtable's had the Null config
So I stopped, because I thought there's a biugger pircture involved.
Infinoid which nopaste? 14:12
There are race conditions with encoding and charset initialization, because the init functions create STRINGs to store the encoding names, yet those STRINGs have null charsets or encodings at times. I mentioned this a while ago, Allison suggested we split labeling out from init and do that part later 14:14
But this looks like a different issue.
It really seems to me like the pointer is being set, and then overwritten later (which sounds like a bug)
NotFound If you want to stop having problems with dll, we must kill global statics. 14:15
rurban_ sorry, no paste, it's in the ticket, comment 3
or 4
f (!PARROT_DEFAULT_CHARSET) { /* hack for TT #276, dynpmc init only on Win32 */ ... 14:16
no I can confirm that the charset is never set, no overwriting
Infinoid hmm. 14:17
When I discovered the init races, I made charset NULLOK (because the encodings were being initialized before the charsets were)
so its crashing on a NULL PARROT_DEFAULT_ENCODING, not PARROT_DEFAULT_CHARSET
rurban_ I said something wrong before: my first bt is from mingw also, but on the first Parrot_str_new_init, the problem inside the dll, initialized later 14:18
bot are 0
Infinoid oh! So its a bad global variable reference?
rurban_ #0 Parrot_str_new_init (interp=0x3d25b8, buffer=0x6778879a "DynLexPad", len=9, encoding=0x0, charset=0x0, flags=12288) at src/string/api.c:767 14:19
encoding is just check first
encoding is just checked first
but encoding is a member of charset
Infinoid charset is never checked, because it is NULLOK 14:20
rurban_ ok
so we should ensure that just the fixed_8 encoding is initialized 14:21
but when you see my fix, you see "Null PMC access in get_integer()"
Infinoid yeah... at the position of your first backtrace, I would love to see a "print Parrot_fixed_8_encoding_ptr" 14:22
and again at the position of your second
rurban_ ok, will do
Infinoid rurban++
Infinoid is going to try moving these into the interp structure, to see if anything breaks.
rurban_ you mean in Parrot_lib_dynlexpad_load 14:23
Infinoid I don't know anything about dynlexpads... I just don't like the global pointers
rurban_ I remember having checked that: in cygwin (or elsewhere) the Parrot_fixed_8_encoding_ptr is kept, but on mingw it was 0x0 inside the (lazy) loaded dll. inside the main process it was okay. 14:24
NotFound Infinoid: an opaque structure known only by this file containing all those global and static globals will be better, IMO
Infinoid ...rather than being in the interp structure?
or does the dll not have access to interp?
NotFound Infinoid: in the interp structure, a pointer to that opaque structure.
rurban_ I'll paste the p *interp, okay? 14:25
Infinoid ok
NotFound The idea is to encapsulate it from other parts of parrot.
Infinoid whatever we do, it should be useful to everything that uses PARROT_DEFAULT_CHARSET and PARROT_DEFAULT_ENCODING
NotFound And add an INTERP parameter to all functions that does not already have one. 14:26
nopaste "rurban" at 143.205.212.10 pasted "TT #276 attempt which shows there's more involved" (58 lines) at nopaste.snit.ch/15523 14:27
rurban_ okay, I think you were right, it seems that it got overwritten. 14:28
I'll have to check the cpp expansion now for the macros
note that this paste already includes my encoding init fix 14:29
Infinoid ok 14:32
rurban_ -g3 doesn't work on mingw-gdb so I cannot expend it there... 14:34
Infinoid are you trying to check the PARROT_DEFAULT_ENCODING macro, or something else? 14:36
rurban_ both. the PARROT_DEFAULT_ENCODING definition and the CONST_STRING_GEN macro (which are both clear to me, but who knows) 14:38
Infinoid there's always gcc -E, I guess 14:42
14:44 rurban__ joined
rurban_ macros are good. I'll paste my result. 14:46
14:48 jan joined
nopaste "rurban" at 143.205.212.10 pasted "verification that constant_pmc_new() is resetting the charset and encoding (win32 only)" (54 lines) at nopaste.snit.ch/15524 14:53
NotFound I'm trying the approach of killing globals.
rurban_ Now I'm tracing into that mess 14:56
Infinoid NotFound: If you're talking about the Parrot_*_encoding_ptr and Parrot_*_charset_ptr globals, I'm working on that too (probably around 70% done) 14:58
NotFound Infinoid: A race? ;) 14:59
Infinoid heh, ok 15:02
first one to nopaste a patch that passes "make test" gets free karma :)
rurban_: so constant_pmc_new is calling the encoding and charset init functions? 15:03
NotFound Infinoid: In each onw system, or in rurban troubled one?
Infinoid I don't know if removing globals will have any effect on rurban's case... 15:04
But removing them is probably useful for it's own sake.
NotFound Infinoid: yeah 15:06
Infinoid hah! now all of a sudden I get a failed assertion 'encoding' too, in the same place as rurban's :) 15:09
has nothing to do with dynlexpad tho 15:10
rurban_ aha 15:11
it's kj also
Infinoid splits encoding/charset labeling from init, to fix that race 15:12
rurban_ Infinoid: not
Infinoid: constant_pmc_new is not calling the encoding and charset init functions, it's nullifying it. Parrot_charsets_encodings_init restores it again, even to the very same ptrs 15:13
Infinoid yeah, they are globals pointing to static structures 15:15
rurban_: the crash I'm seeing is earlier, while parrot itself is initting.
it would be great to find out why your pointers are becoming NULL though
rurban_ you just have to set watch on those two ptrs 15:16
and then step through. not so easy on mingw though
(gdb) watch Parrot_fixed_8_encoding_ptr 15:20
but not! (gdb) watch *Parrot_fixed_8_encoding_ptr 15:34
(I killed my gdb session and even my shell with doing this)
Infinoid hey, no fair! I put the pointers into the interp structure, but then parrot crashes and it's a different interp structure! 15:35
heh, I just had a watchpoint crash gdb here, too.
NotFound I'm having trouble with the jit, not easy to replace the global with a function call in jitted code 15:36
Configuring without jit, in the meantime
Infinoid I guess I didn't hit that, as jit isn't enabled on x86-64 by default anyway 15:40
so I didn't consider that it might be a problem 15:41
cloning the pointers in make_interpreter() seems to have worked. But now I think I see why rurban was suggesting an opaque structure... quicker to copy one pointer rather than 10 15:45
NotFound Infinoid: hey, that was me ;) 15:50
Infinoid heh, ok. NotFound++
15:59 szabgab joined
nopaste "infinoid" at 75.28.75.73 pasted "1-move-encoding-and-charset-into-interp.patch" (1327 lines) at nopaste.snit.ch/15525 16:00
"infinoid" at 75.28.75.73 pasted "2-split-encoding-charset-labeling-from-init.patch" (231 lines) at nopaste.snit.ch/15526
Infinoid That works for me, but as you said, it will probably break JIT 16:01
NotFound Infinoid: you win
Infinoid your opaque pointer idea is a good one 16:02
NotFound But the race was for speed, not for goodness ;)
nopaste "NotFound" at 213.96.228.50 pasted "kill globals from encodings" (872 lines) at nopaste.snit.ch/15527 16:06
NotFound Here is my version, not fully tested yet.
Infinoid oh, searching for it? that will be slower, but more flexible 16:11
rurban_ src\\library.c:335: error: `interp' undeclared (first use in this function)
NotFound Infinoid: that is the way doable without much change, probably will need some functions to directly get the most used ones. 16:12
Well, actually the "most used" are all :D 16:13
Infinoid for now. I think it makes it easier to add more without having to touch a lot of code tho 16:14
nopaste "infinoid" at 75.28.75.73 pasted "3-fix-rurbans-build-error.patch" (33 lines) at nopaste.snit.ch/15528
NotFound Or maybe assign fixed numeric values to some of them. 16:15
Infinoid rurban_: that will probably need a "make headerizer" to be fully correct
NotFound Test pass :)
Infinoid: hey, that is not fair, I headerized mine ;)
Infinoid NotFound: I headerized mine too. But rurban's code is win32-specific, and headerizer only does the stuff that builds on your own platform 16:16
rurban_ 15525+15526, okay, 15527 messed it up for me.
NotFound Ah, all well then
Infinoid so whenever I do a headerizer, it misses all the JIT code 16:17
rurban_ is there a single file patch possible?
Infinoid yeah, I've just been keeping them separate for easier review
NotFound rurban_: 15527 surely is incompatible with the others
16:18 Tene_ joined
nopaste "infinoid" at 75.28.75.73 pasted "single patch for rurban" (1464 lines) at nopaste.snit.ch/15529 16:19
rurban_ sorry, I'm confused now. which pastes should I apply now?
NotFound rurban_: this was not a collaboration, was a competition. You apply either Infinoid patch or mine, but not both at the same time 16:20
Infinoid rurban_: NotFound and I both have our own versions of the patch. NotFound's patch is standalone, 15527. standalone version of mine is 15529
time for breakfast here, back later :)
rurban_ sorry, I'm just in a conference room, so i'm listening to three at once. 16:21
NotFound BTW I modified just the encoding thing, not the charsets yet.
Infinoid yeah. I did both, but didn't try to make it dynamic 16:22
oh, I also managed to remove the NULLOK from charset (something I've been wanting to do for a while now)
NotFound I killed several SHIM_INTERP, wich is also good IMO 16:23
Infinoid yep, I had to do that too... and add PARROT_INTERP in a few new places
and I also got rid of that nasty parrot_init_encodings_2() hack. (but I replaced it with the almost-as-nasty register_encoding_names() hack)
NotFound That _2 is funny, giving that there is no _1 16:24
Infinoid Remember how I said there was a race condition where register_encoding() and register_charset() would create STRINGs before the various encodings and charsets were in place?
parrot_init_encodings_2() went through and fixed up the strings' charset pointers after the fact 16:25
Now I just go through and create the STRINGs after the fact
to me that seems a little more sane.
NotFound Yeah
Infinoid lathos: Your input on this stuff would be valuable. Have you made any attempt to eliminate the Parrot_*_encoding_ptr or Parrot_*_charset_ptr global variables in your strings branch? 16:32
rurban_ got it building now on mingw... wait a sec 16:33
NotFound Why on earth Parrot_str_new_init accepts a NULL charset? 16:35
... and does nothing with it.
Infinoid haha
NotFound: its because register_encoding() creates a string before any charsets have been initialized 16:36
That's what I fixed in 2-split-encoding-charset-labeling-from-init.patch.
(and its what I was just talking about)
NotFound So we can kill that NULLOK when other insanities are also killed. 16:37
Infinoid yes, and I did that
NotFound Good
Infinoid it didn't do nothing with it... it put the NULL pointer into the new STRING structure 16:38
and parrot_init_encodings_2() fixed it up later
NotFound I think that for speed and clarity of the coda we may need to add Parrot_str_new_init_default and Parrot_str_new_init_fixed8
Infinoid I think we might already have macros for that 16:39
NotFound macros are evil
Infinoid (for clarity at least, if not speed)
dalek kudo: a26b223 | (Moritz Lenz)++ | t/harness:
[t/harness] parrot libs can also be in parrot/lib
shorten dalek's url is at xrl.us/befd89 16:40
Infinoid NotFound: macros are evil, you won't find me arguing with that :)
NotFound Macros make the reader think that something is a fast and simple operation when really is a slow lookup.
Specially when they have a hidden interp argument. 16:41
Infinoid We could always go the perl5 ithreads route and stuff the interpreter structure into thread-local context instead 16:42
NotFound Mmmm... you mean pass the conext to most functions, and get the interpreter from it when needed? 16:43
Or just take it from a thread var? 16:44
Infinoid Yeah. They stick the PerlInterpreter into a pthread_getspecific() pointer
so it looks global, but isn't.
kinda. It's another way to have the interp available everywhere without assuming an interp argument 16:45
rurban_ still get errors after make headerize: core.jit:1356: error: `Parrot_fixed_8_encoding_ptr' undeclaredl
Infinoid ah, JIT.
NotFound rurban_: Configure --jitcapable=0 16:46
Infinoid (for the record, I think thread-local variables are even uglier than passing interp everywhere)
rurban_ no problem :)
NotFound We take care of the jit part later
rurban_ src\\pmc\\string.pmc:858: error: `Parrot_ascii_charset_ptr' undeclared 16:47
`Parrot_String_nci_trans': 16:48
NotFound Giving that we allow a full hyerarchy of child interpreters and nothing forbids call one fromm the others inside the same thread, that will be confusing to say the least.
Infinoid yeah, the maintenance overhead of the fixups will outweigh the "casual reading" clarity gains I think
16:50 cosimo joined
Infinoid rurban_: can you change that to interp->ascii_charset_ptr, or should I issue a new patch? 16:50
Ah, there are 4 instances in PMC files that I hadn't fixed up. incremental patch #4 coming up 16:53
nopaste "infinoid" at 75.28.75.73 pasted "4-more-fixes.patch" (56 lines) at nopaste.snit.ch/15530 16:55
rurban_ fixed 4
Infinoid did a clean and rebuild and is retesting now
rurban_ ok, sounds good now 16:56
16:59 kid51 joined
NotFound So we all agree that killing the encoding an charset global variables is the way to go? 17:01
Infinoid I think so, it looks pretty good here (other than jit)
if it fixes rurban's issue, then it proves that shared library semantics are at fault, right? 17:02
17:02 rhr joined
Infinoid I mean, other than some init ordering details, I don't think I changed anything else that would fix mingw 17:02
NotFound Or at least, that using the globals need a serious review for windows dll usage
Infinoid yeah
NotFound And maybe for other platforms shared object semantics. 17:03
So killing them is easier and safer 17:04
Infinoid yeah
This isn't the first time I've seen problems with linking on windows. I've had some issues just accessing the PMCNULL global from time to time 17:05
rurban_ I'm testing cygwin, mingw and msvc6 now. It's just my small laptop.
Infinoid rurban++
rurban: did mingw work, then?
rurban_ still relinking
Infinoid oki
rurban_ the first attempt had an old dynlexpad.c around, which needed an make realclean 17:06
Infinoid is working on better separating his fix-charset-and-encoding-init patch from the remove-globals patch 17:08
I'd like to check in the init-fix stuff first, and independent of the global stuff 17:09
dalek kudo: 6211ae2 | (Moritz Lenz)++ | (2 files):
filetests shouldn't die on non-existant files.
17:10
NotFound Infinoid: good idea
purl NotFound: Good Idea: Buying a pair of shoes on sale. Bad Idea: Buying a parachute on sale.
shorten dalek's url is at xrl.us/befef6
17:20 Andy joined
dalek rrot: r36417 | petdance++ | trunk/src/exec_save.c:
Found an infinite loop
17:20
Andy I found a bug, I found a bug.
Whoo
17:22 gerd joined 17:39 Theory joined
dalek kudo: 13f6779 | (Moritz Lenz)++ | config/makefiles/root.in:
[Makefile] don't try to checkout //-URLs.
17:48
shorten dalek's url is at xrl.us/befej8
18:01 Andy joined
Infinoid Shiny. PARROT_DEFAULT_ENCODING and Parrot_default_encoding(interp) both exist, and they don't always do the same thing 18:11
calling Parrot_make_default_encoding() affects the latter but not the former
18:11 tewk joined
NotFound Infinoid: Parrot_make_default_encoding should be killed 18:11
Infinoid Several pieces of code use PARROT_DEFAULT_ENCODING directly to create strings, so they won't get the new default 18:12
I'm not sure what the design should be here, but this seems like another way the current implementation is broken
NotFound I can't think of any reasonable way of using a mutable default.
Infinoid Removing it is fine with me :) 18:13
NotFound Otherwise we may need a function called: Parrot_default_default_encoding 18:15
Or we can kill completely the default idea. If you want ascii, say it. If you want binary fixed8, say it. 18:16
Infinoid NotFound: Does my patch on TT #286 look reasonable?
NotFound And if you want ebcdic.... er.... did we have someone building in an ebcdic platform?
Infinoid Not that I know of, yet 18:17
well, there are lots of places where having to explicitly specify it clutters things up
Like, do I really want to have to specify that all of my exception strings are in ascii format, for every sanity check I add?
NotFound No mora than explicty specifying DEFAULT
Infinoid that's true. But for most things, I think I'd prefer to have a "don't care" function I can call, instead 18:18
NotFound I thnk that this type of thing must *never* be ascii. If we want to allow localization they must be unicode utf8
Infinoid That's a reasonable default indeed 18:20
And it doesn't affect my code in any way :)
NotFound Yeah, that's the beauty of utf8
Infinoid Except for performance for things like string_equal, I guess
NotFound string_equal can be easily optimized for case of same charset and encoding to a memcmp 18:21
Infinoid Or the string creation function can use ASCII by default for strings that have no high bit set, and utf8 otherwise 18:23
I'm not sure if that makes things better or worse.
NotFound That is the way some parts of parrot use now, and I think that this is effectively pesimizing lots of string operations. 18:24
Infinoid I'm sure if you posted a patch with some measurements indicating improved performance, it would get lots of attention :) 18:25
NotFound Marking them as ascii or latin-1 has the main virtue of making faster access to individual characteres.... but... hey, we don't have functions to access individual characters :D
Infinoid I love how Parrot_str_indexed()'s documentation starts out saying it does that, and then says (maybe) 18:27
I'll be back later :)
NotFound Anyway, for strings destined to show error messages to the user, faster cmp is not a constraint.
18:36 Andy joined
dalek rrot: r36418 | NotFound++ | trunk/src/string/charset/iso-8859-1.c:
[string] fix name inconsistency in charset/iso-8859-1
19:13
rrot: r36419 | jkeenan++ | trunk:
Applying patch submitted by fperrad in trac.parrot.org/parrot/ticket/284. 'pdump' executable renamed 'pbc_dump' to avoid name conflict with other open source program.
19:34
19:45 geof joined 20:06 chromatic joined 20:12 Andy joined
pmichaud moritz++ # 13f6779 20:30
21:03 Andy joined 21:12 tetragon joined, idemal_ joined 21:26 bacek joined
dalek rrot: r36420 | petdance++ | trunk/src/pmc/exceptionhandler.pmc:
consting aplenty
21:27
21:30 turbov21 joined 21:33 Theory joined
turbov21 What does this mean: "load_bytecode" couldn't find file 'PCT.pbc' 21:34
(I'm trying to run a Perl program in Windows)
chromatic Sounds like an improper installation. 21:36
PCT is the base code for a compiler in Parrot.
turbov21 I just ran the Win32 installer off sourceforge 21:38
Perl6 works alone, I can get to a command prompt. It just flakes out when I try to load/run a script. 21:39
dalek rrot: r36421 | petdance++ | trunk:
ornamented some function parameters
21:40
chromatic Which version of the Win32 installer?
turbov21 0.9.0
0.9.0.1
chromatic Hm. That's fairly up to date. I don't remember if we solved the PCT installation problem by that point though. 21:42
turbov21 I haven't spent time trying to build it from source, just ran the installer. 21:43
chromatic I don't see fperrad on channel right now. He might know better. 21:45
turbov21 Thanks. I'll check back later then. (Finally got Rakudo to build on Linux.) 21:48
dalek rrot: r36422 | NotFound++ | trunk/src/library.c:
avoid some duplications in library.c
21:54
22:17 szabgab joined 22:44 rurban__ joined 22:54 TiMBuS joined 23:02 dalek joined
dalek rrot: r36423 | NotFound++ | trunk/src/debug.c:
[debugger] avoid headerizer noise in internal functions of debug.c
23:03
allison@perl.org | Debian/Ubuntu chroot Environment Setup:
link: www.perlfoundation.org/parrot/index...ment_setup
shorten dalek's url is at xrl.us/beesjm
dalek rrot: r36424 | petdance++ | trunk/src:
consting and removing unused vars
23:04
23:10 Limbic_Region joined 23:12 braceta joined 23:13 braceta joined
dalek rrot: r36425 | petdance++ | trunk/src/pmc:
more consty consty
23:33
rrot: r36426 | NotFound++ | trunk:
[codingstd] a few fixes
23:40
23:41 Theory joined
Theory oh joy, piper is harassing me again 23:41
23:52 HG` joined