Parrot 2.11.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Onward and upward with Google Code-In | Please test all nwellnhof/* branches | Merge html_cleanup
Set by moderator on 24 December 2010.
tadzik hi :) 00:02
00:02 fperrad left
rfw hey fbrito 00:02
haven't seen you around in a while
fbrito hello! :D
rfw is working on some weird dragonfly bsd task that involves submitting uuencoded gzipped tars to netbsd 00:03
fbrito Merry Christmas!
rfw happy boxing day!
fbrito rfw: yes... I was really busy working for my father :(
rfw oh
what were you doing
(nolan is kicking your ass, by the way) 00:04
fbrito rfw: my father has a small company and I am responsible for the system they use to control the sales, inventory, and so on 00:06
rfw ah
what do they use?
fbrito the system I made with ruby on rails :o
rfw oh thank god 00:07
i thought you were going to say Ƥccess"
er
"access"*
goddamn these stupid dead keys
fbrito hahaha
00:07 M_o_C left
fbrito rfw: here, some screenshots: fernandobrito.com/site/img/portfoli...folio1.png 00:07
fernandobrito.com/site/img/portfoli...folio2.png
rfw lol you have your own webstie
i would make one but i would have nothing to put on it 00:08
fbrito ahaha
you can put stuff about GCI :D
rfw: I have even made a business card! LOL
rfw haha
fbrito "Fernando Brito Corporation" 00:09
but it was just for fun
rfw i wish i could read your webstie
well, i guess i could slog through this google translate
fbrito Google Translate? :D 00:10
rfw yeah D: 00:13
you know fbrito
why is ror so popular
fbrito because its *magical*
lol
rfw how so
must be
pretty damn magical to popularize a language like ruby
tadzik oh, don't get too pythonic 00:15
rfw tadzik: but i love python :( 00:16
tadzik well, I hope you're not like most of the pythonists I know 00:17
rfw in what way
tadzik "You write Perl? You like Perl? Why do you use Perl? Perl is ugly. Why don't you use Python? Everyoune should use Python. Why don't you use Python instead? Blah blah" 00:18
rfw haha oh god no
tadzik in this specific case the internet people behave better that the real people :) 00:19
rfw though i do make the occassional perl quip
tadzik (the ones I cope with)
dalek TT #1905 created by nwellnhof++: t/pmc/thread.t segfaults with --leak-test 00:21
TT #1905: trac.parrot.org/parrot/ticket/1905
tadzik self.sleep # abayo!
fbrito bye :D 00:22
00:25 rfw left
dukeleto fbrito: did you find some new tasks to keep busy? 00:26
fbrito dukeleto: I am already late on a Parrot task :S (github post hook) 00:27
dukeleto fbrito: i added a few code coverage tasks
fbrito oh, nice! :D
dukeleto fbrito: that task should only need a few lines added. are you using the CPAN github api perl module?
fbrito: search.cpan.org/perldoc?Net%3A%3AGitHub 00:28
fbrito: you should use the commit API to get a diff and then add that to the email
dalek rrot: 8ecae26 | bacek++ | / (3 files):
Don't coerce Null PMCs into values in PCC. Closes #1630
00:29
fbrito I was trying to keep it simple, without adding any dependencies...
00:30 rfw joined
fbrito but my main problem is being unfamiliar with perl itself :P 00:30
dukeleto fbrito: don't worry about dependencies. You probably want to use Net::Github, it will make your life easier 00:31
fbrito: this isn't a dep of installing parrot, this is a dep on the server that runs the hook
fbrito: i highly recommend reading the Modern Perl book that chromatic++ just wrote. It is free online 00:32
fbrito: even just the first chapter may help you with learning Perl 00:33
fbrito: that book gives you the correct philosophy that you need to approach Perl with
fbrito ok, I will take a look :D 00:34
dukeleto: thank you for your help
dukeleto fbrito: no worries! good luck 00:35
dalek TT #1630 closed by bacek++: null arguments automatically coerce to empty strings 00:37
TT #1630: trac.parrot.org/parrot/ticket/1630
rrot: 8e48a67 | bacek++ | / (4 files):
Constify STRING* args
00:47
rrot: bb81d4b | bacek++ | / (2 files):
Add 2 more PMC boxing functions
rrot: 5599e9f | bacek++ | src/hash.c:
Use parrot-wide PMC boxing functions
cotto Go bacek! Nice work. 00:57
mikehh yeah, nice to see the coding robot back :-} 01:02
bacek: seriously missed seeing you around - hope all is well 01:04
dalek rrot: d7199ad | bacek++ | src/ops/ (2 files):
Use parrot-wide boxing functions
01:12
bacek Can someone add 3.3 into trac milestones? 01:15
cotto, can you handle #1906 properly? E.g. add descriptions to proper places. I have to go right now. 01:16
dalek TT #1906 created by bacek++: [DEPRECATED] Passing non-const STRING* is deprecated. 01:26
TT #1906: trac.parrot.org/parrot/ticket/1906
fbrito cotto ping 02:08
dalek rrot: f972490 | nwellnhof++ | src/pointer_array.c:
Fix memory leak in pointer array
02:09
02:10 bacek left
fbrito cotto_work: ping 02:11
dalek TT #1765 reopened by nwellnhof++: Memory leak in allocate_interpreter 02:16
TT #1765: trac.parrot.org/parrot/ticket/1765
02:17 fbrito left 02:24 fbrito joined 02:30 Util joined 02:40 Matt_ joined 02:41 Matt_ left
cotto fbrito, pong 03:13
bacek, apparently not 03:14
fbrito hey cotto :)
I have updated the task: www.google-melange.com/gci/task/sho...9202922193 03:16
cotto fbrito, great. I can't review right now I'll definitely do so later this evening. 03:17
fbrito sorry for taking so long :S
03:18 kennym left
fbrito cotto ok, sure :D 03:18
03:23 Matt_ joined 03:24 Matt_ left 04:02 fbrito1 joined, fbrito left 04:04 Matt_ joined 04:18 jhelwig left 04:35 stilgar joined
stilgar fbrito: your gci github task is marked as complete 04:37
04:48 stilgar left 04:52 Matt_ left 04:59 redicaps joined 05:17 redicaps left 05:35 rurban_ joined 05:37 rurban left 05:38 rurban_ is now known as rurban 06:07 fbrito1 left
cotto Net::GitHub has quite the list of dependencies 06:37
06:46 plobsing joined
cotto who's on html_cleanup? 06:57
looks like mikehh 06:58
mikehh, pign
or ping if you prefer
dukeleto ~|~ 07:05
cotto hio dukeleto 07:06
merry Christmas
dukeleto cotto: wazzup
ho ho ho
cotto: i added a bunch of new code coverage gci tasks
cotto great
dukeleto cotto: what are you up to? 07:07
cotto enjoying Christmas with family and wondering whether it's a good idea to require perl 5.12.0 for building the docs 07:08
html_cleanup currently has that requirement, but I'm not sure I like it
dukeleto cotto: why does it need 5.12 ? 07:10
cotto not sure
dukeleto cotto: sounds like we need to see if 5.12 is actually needed 07:13
cotto that's why I pinged mikehh
Ideally it'd have the same minimum requirements as the rest of Parrot, but I could buy 5.10.0 if there's a good reason. 07:14
dukeleto cotto: i will take a look at html_cleanup now to see if i can easily tell why it has a dep on 5.12 07:16
07:16 Kapace_ joined, fperrad joined
cotto msg mikehh Why does html_cleanup require perl 5.12.0? How reasonable is it to require 5.8.6 or 5.10.0? 07:17
aloha OK. I'll deliver the message.
07:17 prabu joined
cotto nice to have aloha back 07:17
dukeleto indeed
07:18 theory left
cotto dukeleto, do you have a feather account where you could set up aloha? 07:18
dukeleto cotto: where is the 5.12 dep actually described in html_cleanup? 07:21
cotto: i have a feather account, but i stopped using it for irc since it would go down occasionally and screen sessions would vanish 07:22
cotto it's part of the make html target
dukeleto cotto: do we need another aloha?
cotto tools/docs/make_html_docs.pl 07:23
dukeleto, we need one that people other than bacek can take care of
dukeleto cotto: i see. What does caring and feeding for aloha entail?
cotto or "in addition to bacek"
you'd have to ask bacek 07:24
whatever's needed to keep it going
dukeleto cotto: at first glance, it looks like that script is only using 5.12 so that it can use 'say' 07:25
cotto: so i would say that 5.12 shouldn't be required. Just change some 'say' calls to 'printf'
cotto: but perhaps there are deeper details. but that is what it looks like at first look 07:26
cotto I'm about to fall asleep. We can ask mikehh about it when he's on.
thanks
'night
dukeleto cotto: night
dalek rrot: eed5842 | plobsing++ | include/parrot/interpreter.h:
remove unused RESUME_ISJ flag
07:27
rrot/encapsulate-main: 2921e19 | plobsing++ | / (2 files):
add main_sub slot to packfile bytecode for storing main sub index
07:29
rrot/encapsulate-main: 3ff38d4 | plobsing++ | compilers/imcc/ (2 files):
store appropriate index in main_sub
rrot/encapsulate-main: ae0986c | plobsing++ | src/packfile/api.c:
use bytecode main_sub in stead of scanning
rrot/encapsulate-main: 0c04a50 | plobsing++ | include/parrot/sub.h:
eliminate :main as one of the flags stored on a sub
rrot/encapsulate-main: b411e5b | plobsing++ | t/compilers/imcc/syn/pcc.t:
per TT #1704, the first :main-flagged sub is to be used
rrot/html_cleanup: 7b7564e | dukeleto++ | tools/docs/make_html_docs.pl:
Remove unnecessary dependency on perl 5.12
07:30
m-eta-wink-kzd: 7667679 | plobsing++ | src/ (4 files):
nowrap in vim modelines - long lines work here
m-eta-wink-kzd: b97c30a | plobsing++ | src/ (5 files):
winxed implementations of toProgramString() and unescape()
dukeleto cotto: ^^^ that should fix your dep problem
prabu can anyone help me with using unicode in my Grammar.pm file..? 07:38
dukeleto prabu: i am in here too :) 07:39
prabu :)
dukeleto prabu: do you have your code on github or something?
nopaste?
aloha nopaste ?
aloha dukeleto: Search me, bub.
dukeleto aloha: nopaste? 07:40
aloha dukeleto: nopaste is is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
dukeleto prabu: nopaste the complete error that you are getting, or use gist.github.com
prabu: which version of parrot are you using? which OS/platform?
prabu xubuntu, parrot-2.9.1 07:41
my problem is very simple, but since i'm a newbie to perl i'm not able to fix it. 07:42
this is my token :
token { "\\x[0B85]" } 07:43
i put english character 'a' in the place \\x[0B85] and changed the file also with content 'a' , it is working perfectly, but for the unicode character 'ą®…', i'm gettting unrecognized token error. 07:44
dukeleto: any idea about unicode stuff in parrot ? 07:45
dukeleto prabu: parrot uses the ICU library
prabu: what does "./parrot_config --dump|grep has_icu" tell you? 07:46
prabu: if you don't compile parrot with ICU, you won't be able to use unicode 07:48
prabu 0
dukeleto prabu: yep, your parrot does not have ICU 07:49
prabu how do i?
dukeleto prabu: sudo apt-get install libicu-dev libicu42 07:50
prabu: that will install icu
prabu: on debian systems
prabu: then you will probably have to compile parrot. 07:52
prabu ok, again i want to make and make install?
dukeleto prabu: you need to run "perl Configure.pl" again, with whichever flags you want to give to it 07:53
prabu ok Thanks dukeleto
dukeleto prabu: there should be a line of output from that that tells you it found ICU
prabu: no worries
Kapace_ Hello #parrot... 07:54
I've been trying to install pl/parrot, but make installcheck fails out.. 07:55
dukeleto Kapace_: when, installcheck might fail for spurious reasons. what kind of failing are you seeing?
Kapace_ dpaste.org/smGf/
OS ubuntu 10.10
dukeleto prabu: you will need a make install after you see Configure.pl tell you it found ICU
Kapace_: looks like you don't have PostgreSQL running 07:56
Kapace_ I have postgres up and running
dukeleto Kapace_: or you have it on a nonstandard port
Kapace_: perhaps you need /etc/init.d/postgresql start ? 07:57
Kapace_: do you have postgres installed?
Kapace_ yes I have it install, and it is running
i can do sudo -u postgres psql, and I get a postgres shell
dukeleto Kapace_: yes, but that is as the postgres user 07:58
Kapace_: you probably have permissions issues 07:59
Kapace_: what does ls /tmp/*PGSQL* say?
Kapace_ ls: cannot access /tmp/*PGSQL*: No such file or directory
dukeleto Kapace_: also, the README.* files in the PL/Parrot repo have various tips for configuring it and compiling it
Kapace_: ok, just wondering
Kapace_ yeah, I've read that, did make, make install, but installcheck fails 08:00
dukeleto Kapace_: can you run "make test" ?
Kapace_ yeah, permision errors for me, lets see if i can fix them 08:01
dukeleto Kapace_: you probably need to tweak pg_hba.conf 08:02
prabu dukeleto: has_icu=> '1' & still getting 'unable to parse source' 08:03
dukeleto prabu: nopaste the complete source and error 08:06
prabu: and make sure you are using your new parrot and not the old one
prabu: also, the -v flag to the parrot binary gives extra info 08:08
prabu: there are also debug flags to give with -D that will print various things
08:10 prabu left 08:15 prabu joined
dalek rrot/leto/embed_grant: 55cbcc4 | dukeleto++ | t/src/embed.t:
[t] Refactor some embed tests. No functional change
08:17
nopaste "prabu" at 192.168.1.3 pasted "dukeleto: code and the error." (19 lines) at nopaste.snit.ch/27491 08:23
prabu dukeleto: nopaste.snit.ch/27491
dalek rrot/leto/embed_grant: 6b49536 | dukeleto++ | t/src/embed.t:
[t] Add test for Parrot_PMC_i_absolute
08:37
dukeleto prabu: that error means that you have invalid syntax in your grammar 08:39
prabu: there is also the unicode:"foo" syntax for strings 08:41
prabu: prefix the literal string with unicode:, with quotes around the string
prabu: nqp-rx (what the grammar is written in), is not liking your unicode string
prabu: if you post your nopaste and your question to parrot-dev, many smart people can probably tell you what is up. the people who wrote and hack on nqp-rx are on that list 08:42
prabu: just make sure to give all the background info too (parrot version, OS, etc..) 08:43
dalek rrot/leto/embed_grant: c74a6b5 | dukeleto++ | t/src/embed.t:
[t] Test for Parrot_PMC_i_add
08:52
mikehh dukeleto you around 09:24
dukeleto: ping 09:25
09:28 kennym joined 09:30 prabu left 09:41 prabu joined 09:43 rfw left
mikehh got to go out for a bit - bbl 09:46
10:16 fbrito joined
dalek a: 958c07f | fperrad++ | lua/ (6 files):
concat_s_s is gone
10:19
a: f502a5c | fperrad++ | / (2 files):
concat_s_s is gone, refactor with StringBuilder
10:36 fbrito left
dalek lscript: 1ba836e | fperrad++ | / (3 files):
concat_s_s is gone, refactor with StringBuilder
10:46
10:50 redicaps joined 10:53 contingencyplan joined 11:09 cotto left
dalek rrot: f4f7e83 | fperrad++ | examples/pir/befunge/ (3 files):
[befunge] concat_s_s is gone
11:37
11:52 contingencyplan left 12:01 whiteknight joined 12:07 holli left
whiteknight good morning, #parrot 12:20
msg plobsing: With the new embed_api stuff merged, I would *really* like it if we didn't automatically Parrot_pcc_set_sub on main, but instead had a function on the packfile to look it up on demand. would help to clean up the API in a major way. 12:28
aloha OK. I'll deliver the message.
whiteknight aloha: coverage?
aloha whiteknight: coverage is cv.perl6.cz or tapir2.ro.vutbr.cz/cover/cover-results/
12:55 fbrito joined 13:14 redicaps left
plobsing whiteknight: sure, it isn't the cleanest just yet. I'm iterating here, trying to maintain current functionality in a hopelessly tangled subsystem. 13:32
first step is to replace the use of a most (if not all) the flags on Sub PMC with packfile functionality. death to do_1_sub_pragma(). 13:35
13:35 rurban_ joined 13:37 rurban left 13:38 whiteknight left, rurban_ is now known as rurban 14:19 ambs joined 14:26 lidden joined 14:32 cognominal left 14:34 fbrito left 14:35 cognominal joined 15:03 Matt_ joined 15:04 fbrito joined 15:20 bluescreen joined 15:22 fbrito left 15:23 ambs left, ambs joined, ambs left 15:40 kennym left 15:50 kid51 joined 15:53 whiteknight joined
whiteknight plobsing: using Parrot_pcc_set_sub to denote the :main sub was probably one of the single most annoying things to me as I was doing the embed_api stuff 15:55
so I'm very glad to hear that other people want to change it
msg cotto I'll gladly take a GCI admin bit, though we are pretty close to the end of the program now. Probably not needed. Next year I think we definitely want to spread the wealth around 15:56
aloha OK. I'll deliver the message.
15:57 Matt_ left
plobsing whiteknight: I have serious hatred for *all* the automagic stuff that happens on PBC/PIR load 16:00
whiteknight I would really like the workflow to be: load a packfile, ask the packfile for the :main sub, call :main sub with args 16:01
16:02 kennym joined
whiteknight what we have now is really ugly 16:02
plobsing errr... put an explicit call to get :load subs in there and I'm with you
whiteknight yes 16:08
I really want to talk to pmichaud about why Rakudo needs the difference between :init and :load subs
obviously if they need it we have to keep it, so I want to see exactly what the use-case is 16:09
because off the top of my head I can't think of any reason to keep it, besides working around bugs or something 16:10
kid51 msg dukeleto See: www.google-melange.com/gci/task/sug...595846?s=0 Does that satisfy your requirements for creating a task? 16:11
aloha OK. I'll deliver the message.
plobsing upon further consideration I see no reason not to keep the distinction if it is possible to emulate it by simply prepending them to a main sub (or using a canned main that tailcalls the :main sub) 16:12
I'm much more concerned with :immediate and :postcomp, which don't always do what it says on the tin. 16:13
whiteknight right, what the PIR interface looks like, and what the packfile structures look like internally can be very different thigns
plobsing: yes, at least one of those two should go away. I suggest :postcomp
plobsing duplication is not the biggest problem. when you compile to PBC, *neither* of them get run. They get run on PBC load before :load subs. 16:14
whiteknight I know Rakudo is looking for more ways and more creative ways to serialize constants at compile time, so we do still need a mechanism like :immediate
yeah, that's retarded 16:15
plobsing whiteknight: what rakudo is looking for cannot be solved with the mechanisms provided by PIR. They need full object serialisation, which means writting their own PBC or at least creating accompanying FPMCs.
16:16 kid51 left 16:48 cotto joined
cotto ~ 16:52
17:06 whiteknight left
mikehh hey cotto 17:12
17:18 kid51 joined 17:20 whiteknight joined
whiteknight I'm going to open up my laptop tomorrow and see if I can fix the backlights. Until then I'm trying to set up VirtualBox here on this computer so I can have a linux dev environment again 17:23
nopaste "mikehh" at 192.168.1.3 pasted "parrot g++ build failures" (30 lines) at nopaste.snit.ch/27495 17:24
mikehh how do you add something to .gitignore? 17:30
tadzik hmm, just add a line and commit, if that's what you mean 17:31
mikehh git status gives -> src/embed/api.o, src/embed/pmc.o, src/embed/strings.o 17:32
17:32 whiteknight left, whiteknight joined
mikehh tadzik: no I think it is generated 17:32
tadzik hmm, /*.o is in .gitignore
# generated by tools/dev/mk_manifest_and_skip.pl 17:33
indeed
mikehh let me try that, but manifest_tests are ok
plobsing mikehh: those C++ errors appear to be from a recent round of consting 17:37
mikehh after running git diff doesn't display anything and .gitignore has not chenged
plobsing: had the first one for a couple of days, the second just now 17:38
of course gcc builds ok 17:39
kid51 msg dukeleto I have reformatted all 3 GCI tasks; are they approvable now?
aloha OK. I'll deliver the message.
17:42 theory joined
mikehh plobsing: in the first I tried adding include/parrot/exceptions.h where Parrot_confess is defined but that gives many more errors 17:44
plobsing why are we consting strings left, right, and center? why don't we just #define const struct STRING ??? 17:53
mikehh yeah - strings are immutable now 17:54
17:58 nwellnhof joined, prabu left
dalek rrot/encapsulate-main: 4f24579 | plobsing++ | t/compilers/imcc/syn/regressions.t:
check exit code to guard against SIGBUS/SIGSEGV

Pattern matching on output will not catch such errors in parrot shutdown - the
  shell provides the nice messages informing the user of such occurances, not the
original program.
18:02
rrot/encapsulate-main: 9d368bc | plobsing++ | frontend/pbc_merge/main.c:
look for :main subs on pbc_merge
rrot/encapsulate-main: da6bfe2 | plobsing++ | compilers/imcc/pbc.c:
eliminate implicit :main sub selection

this closes TT #1704
rrot/encapsulate-main: 44118c7 | plobsing++ | config/gen/config_pm/config_lib_pir.in:
add explicit :main
Some 'nwellnhof' person just gave me a 41550 byte commit packet. They need to be more careful in the future. 18:10
nwellnhof See github.com/parrot/parrot/commits/n...g_unescape 18:12
i'd like to merge that branch in the next days. 18:13
plobsing nwellnhof: what does it do exactly? 18:17
nwellnhof it switches all the string unescaping to NotFound++'s new string_unescape function, see trac.parrot.org/parrot/ticket/1628 18:21
that allows us to remove some cruft from the string code.
the old unescaping code was only used for encoding:charset:"" type literals which are deprecated now. 18:22
18:55 Matt_ joined
dukeleto kid51: yes, you can approve those tasks. I think i approved 1 19:11
19:20 kennym left 19:27 Patterner left 19:28 kennym joined
whiteknight nwellnhof:that branch looks good to me. +1 for merge 19:31
kid51 dukeleto: I think we need the Organ Admin to approve. 19:33
My reading of the GCI FAQ is that only the Admins can approve/publish.
whiteknight: Have we had any merges recently that would cause GC-related tests to slow down on small-resource machines? 19:36
whiteknight kid51: I don't believe so. What kinds of slowdowns are we talking about? 19:37
19:37 Psyche^ joined, Psyche^ is now known as Patterner
kid51 On my iBook, t/op/gc-non-recursive.t is taking a full 2 minutes. 19:37
I don't recall it being that slow earlier in the month. 19:38
whiteknight kid51: can you check out an earlier version, like 2.10, and test it for me? I would love to see what the numerical differences are 19:39
kid51 What's the quickest way to find out the commit # at 2.10?
tadzik git cat .git/refs/tags/RELEASE_2_10_0 19:46
assuming it's fetched or something, I think. There is only 2.11 in my .git
kid51 tadzik Thanks. Have to go out now. Will try that later. 19:47
19:47 kid51 left
tadzik quick offtopic survey for linuxers: which distro do you use? 19:48
plobsing tadzik: arch linux 20:15
whiteknight ubuntu
20:16 Sdu joined 20:18 Sdu left, Sdu joined 20:20 Sdu left, Sdu joined 20:22 Sdu left, Sdu joined 20:24 Sdu left, Sdu joined, Sdu left 20:25 bacek joined
plobsing tadzik: tinkering with the contents of .git may not be the best idea. 'git show-ref RELEASE_2_10_0' should probably be used for that purpose. 20:27
tadzik plobsing: ah, that'd be it. I was looking at the man for git tag 20:28
20:29 contingencyplan joined, M_o_C joined
plobsing I somewhat wonder if that is really a problem that needs solving here though. Most (all?) git tools accept tag names anywhere they would accept a commit hash. 20:31
20:46 sdu joined 20:48 sdu left, sdu joined 20:49 sdu left 21:17 M_o_C left 21:23 bacek left
NotFound tadzik: debian and ubuntu 21:26
dalek rrot: 4c6d38e | bacek++ | / (2 files):
Constify STRING*
21:33
21:33 perlite_ joined
dalek rrot: 0cdf52c | NotFound++ | t/pmc/hash.t:
test Hash vtable elements
21:34
21:35 bacek joined, rurban_ joined 21:36 perlite left, perlite_ is now known as perlite 21:38 rurban left, rurban_ is now known as rurban
dalek rrot: 7dcf321 | bacek++ | DEPRECATED.pod:
Remove #1540 "immutable strings" from DEPRECATED.
21:42
rrot: 8d4cf37 | bacek++ | DEPRECATED.pod:
Add #1906 into DEPRECATED.
TT #1576 closed by bacek++: Update functions that take STRING * to take const args where possible
TT #1576: trac.parrot.org/parrot/ticket/1576
bacek aloha, humans
dalek rrot: 1648804 | NotFound++ | t/pmc/hashiterator.t:
test HashIterator vtable elements
21:43
dukeleto bacek: howdy, meatbag 21:45
plobsing bacek: your consting changes broke C++ earlier
21:45 Yuki`N joined
bacek plobsing, ouch. 21:45
dukeleto, hio
plobsing also, why not just #define const struct parrot_string_t STRING ?
dukeleto msg kid51 all tasks that were waiting are now approved and published 21:46
aloha OK. I'll deliver the message.
NotFound I think you are losing your time with that attempt. The String struct is not const, it can change at any time for any reason.
bacek plobsing, hm. I can try it. 21:47
plobsing I'm not convinced consting is a worthwhile endeavour, but if we are doing it, we might as well do it right.
bacek plobsing, we still need non-const pointer during initialization of STRING 21:48
plobsing bacek: sure, use a different typedef for string internals. 21:49
NotFound plobsing: we can't const right and be able to change it everywhere at the same time.
bacek NotFound, why so? STRINGs are immutable.
NotFound bacek: string content is immutable. The struct that supports it is not.
And we are using C, not C++, we don't have 'mutable' attribute to support logical constness. 21:50
plobsing NotFound: we're going whole hog on immutable strings. we even got rid of inplace string ops even though they have nothing to do with anything that matters. 21:51
bacek plobsing, erm. How that?
plobsing inplace string ops modified string *registers*. not the contents of the strings. 21:52
bacek $S0 = $S1; $S1 .= "foo"; say $S0
NotFound plobsing: but we have optimizations that play games with the string struct, and we have lazy evaluated hash values.
bacek plobsing, they modify content
NotFound $ winxed -e 'string s0 = "Hello"; string s1 = s0; s0 += " world"; say(s1); say(s0)' 21:56
Hello
Hello world
plobsing bacek: that's not the behaviour of that op. 21:57
Yuki`N In regards to TT#1897, --silent passed to configure actually works.
So I think the GCI task related to that is void. 21:58
bacek plobsing, yes. But it was a lot of hairy code to support COW
plobsing but we don't have COW strings
dalek rrot: 0ed95be | bacek++ | / (2 files):
Unconstify STRING* to partially unbroke c++ build. plobsing++
plobsing when did immutable strings hit? 2.3? 2.6? 22:00
arguing that the code to support COW is effectively saying "we wrote ugly looking code to take advantage of information that we thought would give us an optimization, but we didn't like it. so we *need* to eliminate that information" 22:04
if you write code you don't like as an optimization, just don't do the optimization.
NotFound plobsing: but we have that things, and people that want it. 22:05
And there is no need to debate the point, the C++ compiler takes care of the proof. 22:06
plobsing immutable strings hit in 2.4 (according to NEWS). 2.0 runs bacek's code sample without mutating S0.
bacek plobsing, because of COW. 22:07
NotFound plobsing: as I said: the parrot string does not mutate, but the C struct tha support it does.
plobsing you don't *need* to COW. you could just copy on modify like we do now. even in a system that supports COW.
NotFound Forget the comments about COW; they are old and are not true,. 22:08
plobsing COW is the argument against inplace string ops
NotFound plobsing: that batlle were already fought. 22:09
plobsing just saying - don't argue with immutable strings, we do irrational things in their name.
NotFound plobsing: I don't argue with immutable string, I talk about current codebase and the C STRING structure, 22:10
And again, there is no need to argue, tha compilers tells us the reality. 22:11
plobsing true 22:12
NotFound (unless we lie to the compilers by adding a lot of casts, and the we'll get a lot of Heisenbugs as penitence) 22:15
plobsing have you seen the amount of casts we have?
I think we're already at the lying to the compiler through our teeth stage. 22:16
22:17 fperrad left
NotFound plobsing: we have a lot of casts, yet. Some are good, some may be wrong. Casting away constness in things we know aren't const is always wrong. 22:17
22:22 fbrito joined
Yuki`N Hmm 22:41
I increased src/embed/strings.c and src/embed/pmc.c's test coverage by a lot, but I didn't write any new tests. 22:42
Does that still technically complete the task?
dukeleto Yuki`N: really?
Yuki`N Yep
whiteknight plumage is now on github at parrot/plumage
dukeleto Yuki`N: are you using "make cover" or "make quickcover" ?
whiteknight++ 22:43
Yuki`N They weren't included in make test.
So they weren't getting run.
dukeleto good to see plumage getting some love
whiteknight Yuki`N: ah, good problem-solving
dukeleto Yuki`N: wow! nice.
whiteknight Yuki`N: Yes, that counts
Yuki`N I noticed
Because
I wrote some of those tests myself
whiteknight and I lose points for being stupid
Yuki`N Lol.
whiteknight Yuki`N: yeah, open a pull request, and I'll give you credit for the tasks 22:44
Yuki`N So strings is up to 74.5% and pmc is up to 83.6%
I want to get those to 100% though so
whiteknight Then I'll have to look at the new coverage numbers and make new tasks
Yuki`N K.
github.com/parrot/parrot/pull/44 22:45
I already requested pmc.c socghop.appspot.com/gci/task/show/g...9336706640
dukeleto Yuki`N: accepted 22:57
Yuki`N Submitted. 22:58
Kapace_ Yuki`N: lucky! :P 22:59
Yuki`N :P I wrote some of those tests anyway. 23:00
So it would have been trivial for me to write more.
Hmmph. 23:02
Tests are failing because
of extraneous output due to the coverage process. 23:03
e.g. profiling:/home/nlum/parrot/src/parrot_config.gcda:Merge mismatch for summaries
Kapace_ I have that problem too, but apparently works under my ubuntu 9.10 vm 23:04
23:13 danielmarth joined
Yuki`N whiteknight, how do exception handlers in C work? 23:16
Kapace_ C has execption handlers? 23:17
Yuki`N The embedding API for Parrot in C has exception handlers. 23:18
Kapace_ oh right, hehe
23:19 whiteknight left 23:20 lidden left 23:53 Coke left 23:59 Coke joined